- 校门外的树
- 2015-04-14 11:25:16 @
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int L,S,M,N,sum = 0,T; //L是道路长度,M是区域数,S是区域起点,N是区域终点,T是最后剩余的树的数目
vector<int> a(2); //用来存放每行的起点和终点
vector<vector<int>> b; //用来存放三行的起点和终点
cin>>L>>M;
b.clear();
for(int i = 0;i<M;i++)
{
a.clear();
cin>>S>>N;
a.push_back(S);
a.push_back(N);
b.push_back(a);
}
sum = b[0][1] - b[0][0];
for(int i = 1;i<M;i++)
{
sum = sum + b[i][1] - b[i][0];
if(b[i][1] > b[i-1][0] && b[i][0] < b[i-1][0]) //减去重叠区域多加的树
sum = sum - (b[i][1] - b[i-1][0]);
}
T = L - 1 - sum;
cout<<T<<endl;
return 0;
}
4 条评论
-
lxy1374030943 LV 8 @ 2016-06-22 13:46:55
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,l,r,ans,f[10001];
int main()
{
cin>>n>>m;
for(int i=1;i<=m;++i)
{
cin>>l>>r;
if(l>r) swap(l,r);
for(int j=l;j<=r;++j) f[j]=1;
}
for(int i=0;i<=n;++i)
if(!f[i])
ans++;
cout<<ans<<endl;
return 0;
} -
2015-10-13 07:49:49@
编译超时
-
2015-09-27 09:53:14@
#include <iostream>
using namespace std;
int main()
{
int i,j;
int n,m;
cin>>n>>m;
bool l[n+1];
int x,y;
for(i=0;i<=n;i++)
l[i]=true;
for(i=0;i<=n;i++)
{
cin>>x>>y;
for(j=x;j<=y;j++)
{l[j]=false;
}}
int js=0;
for(i=0;i<=n;i++)
{
if(l[i]==true)
js++;
}
cout<<js<<endl;
//system("pause");
return 0;
} -
2015-04-14 12:04:03@
题目首先没有保证排序了。其次可能是存在包含关系的。
- 1