Codeup 墓地——1814: 剩下的树

Posted industrial-fd-2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeup 墓地——1814: 剩下的树相关的知识,希望对你有一定的参考价值。

1814: 剩下的树

时间限制: 1 Sec  内存限制: 32 MB
提交: 2403  解决: 928
[提交][状态][讨论版][命题人:外部导入]

题目描述

有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。
    现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。
    可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。

输入

两个整数L(1<=L<=10000)和M(1<=M<=100)。
    接下来有M组整数,每组有一对数字。

输出

 可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。

样例输入

4 2
1 2
0 2
11 2
1 5
4 7
0 0

样例输出

2
5

PS:我忍不住吐槽一下,这道题暴力法解决!不需要想问题想的太复杂了!想那么多干什么?这道题的时间复杂度最高是O(10^6),不会超过1s的!
昨天晚上我做的时候,想复杂了... 还去把左右区间排了个序...根本不需要...这道题就是一个简单的模拟题,题目要你干啥,你就干啥,只是把中文话,变成代码,让计算机懂!
那么问题来了?"区间之间可能有重叠 "
这句话怎么翻译?设置一个访问数组visit[]就行,初始化全为0,当访问过了就置为-1.一旦没访问过,就L--;
输出需要注意的是:L+1 因为是剩下的树的数量

//碰到的一个报错:
error: reference to ‘left‘ is ambiguous
自定义的left 变量与库中重名;
解决:修改一下变量名


代码如下:
 1 #include <iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 #include<cstring>
 5 #define maxn 10001
 6 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 7 using namespace std;
 8 
 9 int L,M;//长度以及组数
10 typedef struct interval{
11     int l;//左端点, 
12     int r;//右端点 
13 }Interval;
14 int visit[maxn]; 
15 
16 Interval inter[maxn];
17 void solve(){
18      int i,j;
19     for(i=0;i<M;i++){
20         for(j=inter[i].l;j<=inter[i].r;j++){
21             if(visit[j]==0) {
22                 L--;
23                 visit[j]=-1;
24             }
25         }
26     }    
27     cout<<L+1<<endl;
28 
29 }
30 int main(int argc, char** argv) {
31     
32     int i;
33 
34     cin>>L>>M;
35     while(L&&M){
36          memset(visit,0,sizeof(visit));
37         for(i=0;i<M;i++){
38             cin>>inter[i].l>>inter[i].r;
39         }
40     
41         solve();
42         cin>>L>>M;
43     } 
44     return 0;
45 }

 


以上是关于Codeup 墓地——1814: 剩下的树的主要内容,如果未能解决你的问题,请参考以下文章

[Codeup 25481] swan

bzoj1227

人工智能要造反,从奸笑到半夜播报附近墓地!搞伐好了!

剩下的树

代码点火器ORM(从墓地挖出)

云效Codeup代码评审中的代码协同