信息学奥赛一本通C++语言——1107:校门外的树
【題目描述】
某校大門外長(zhǎng)度為L(zhǎng)的馬路上有一排樹(shù),每?jī)煽孟噜彽臉?shù)之間的間隔都是1米。我們可以把馬路看成一個(gè)數(shù)軸,馬路的一端在數(shù)軸0的位置,另一端在L的位置;數(shù)軸上的每個(gè)整數(shù)點(diǎn),即0,1,2,……,L,都種有一棵樹(shù)。
由于馬路上有一些區(qū)域要用來(lái)建地鐵。這些區(qū)域用它們?cè)跀?shù)軸上的起始點(diǎn)和終止點(diǎn)表示。已知任一區(qū)域的起始點(diǎn)和終止點(diǎn)的坐標(biāo)都是整數(shù),區(qū)域之間可能有重合的部分。現(xiàn)在要把這些區(qū)域中的樹(shù)(包括區(qū)域端點(diǎn)處的兩棵樹(shù))移走。你的任務(wù)是計(jì)算將這些樹(shù)都移走后,馬路上還有多少棵樹(shù)。
【輸入】
第一行有兩個(gè)整數(shù)L(1 ≤ L ≤ 10000)和 M(1 ≤ M ≤ 100),L代表馬路的長(zhǎng)度,M代表區(qū)域的數(shù)目,L和M之間用一個(gè)空格隔開(kāi)。接下來(lái)的M行每行包含兩個(gè)不同的整數(shù),用一個(gè)空格隔開(kāi),表示一個(gè)區(qū)域的起始點(diǎn)和終止點(diǎn)的坐標(biāo)。
對(duì)于20%的數(shù)據(jù),區(qū)域之間沒(méi)有重合的部分;對(duì)于其它的數(shù)據(jù),區(qū)域之間有重合的情況。
【輸出】
包括一行,這一行只包含一個(gè)整數(shù),表示馬路上剩余的樹(shù)的數(shù)目。
【輸入樣例】
500 3
150 300
100 200
470 471
【輸出樣例】
298
代碼
#include<cstdio> using namespace std; int a[10001],n,m,x,y,s=0; int main() {scanf("%d%d",&n,&m);for(int i=0;i<=n;i++) a[i]=1;for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);for(int j=x;j<=y;j++) a[j]=0;}for(int i=0;i<=n;i++){if(a[i]==1) s++; }printf("%d",s);return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通C++语言——1107:校门外的树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛C++语言:for_求和
- 下一篇: 最高的分数(信息学奥赛一本通-T1062