1 条题解

  • 0
    @ 2025-8-24 21:20:19

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Loyal_Soldier
    一只小菜蛙 | 一只爱玩PVZ杂交版的蛙 | 天生我菜必有用,千金散尽还复来 | 这个人很菜,请忽略他的红名 | 小号@kaikai_qwq

    搬运于2025-08-24 21:20:18,当前版本为作者最后更新于2025-01-13 14:27:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路

    我们可以用一个 flagflag 数组来记录每个位置的树是否被移走,如果为 11 说明这个位置的树被移走,否则为没有被移走。我们可以每次输入两个数 a,ba,b ,然后将 flagaflagbflag_a\sim flag_b 全都标记 11 ,最后我们遍历一遍 0l0\sim l ,如果当前位置的树没有被移走最终答案就加一,最后输出最终答案。

    代码

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int flag[114514];
    int ans;//ans为最终答案
    signed main(){
    	int l,m;
    	cin>>l>>m;
    	for(int i=1;i<=m;i++){
    		int a,b;
    		cin>>a>>b;
    		for(int j=a;j<=b;j++)//标记
    			flag[j]=1;
    	}
    	for(int i=0;i<=l;i++)
    		if(!flag[i])//判断当前位置上的树是否没有被移走
    			ans++;//增加最终答案
    	cout<<ans;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    49
    时间
    1000ms
    内存
    125MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者