codeforces 401 B Sereja and Contests【贪心】

题意:给出最后的时间n,div 1必须和div2一起举行,并且div2的时间总是比div1大1

给出Sereja(只能参加div2)参加过的k场比赛的时间,问他最少错过了多少场div2,最多错过了多少场div 2

 

先扫描一遍单个的没有用过的时间,再扫一遍连续的两个没有用过的时间

 1 #include<iostream>  

 2 #include<cstdio>  

 3 #include<cstring> 

 4 #include <cmath> 

 5 #include<stack>

 6 #include<vector>

 7 #include<map> 

 8 #include<set>

 9 #include<queue> 

10 #include<algorithm>  

11 using namespace std;

12 

13 #define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i)

14 

15 typedef long long LL;

16 const int INF = (1<<30)-1;

17 const int mod=1000000007;

18 const int maxn=100005;

19 

20 int hash[maxn];

21 

22 int main(){

23     int n,m;

24     cin>>n>>m;

25     memset(hash,0,sizeof(hash));

26     

27     

28     while(m--){

29         int x,u,v;

30         cin>>x;

31         if(x==1){

32             cin>>u>>v;

33             hash[u]=hash[v]=1;

34         }

35         if(x==2) {

36             cin>>u;

37             hash[u]=1;

38         }        

39     }

40     

41     int minn=0,maxx=0;

42     

43     for(int i=1;i<n;i++){

44         if(hash[i]==0) maxx++;

45     }

46     

47     

48     for(int i=1;i<n-1;i++){

49         if(hash[i]==0&&hash[i+1]==0) {

50             minn++;

51             hash[i]=1;

52             hash[i+1]=1;

53         }

54     }

55     

56     printf("%d %d\n",maxx-minn,maxx);

57     return 0;

58 }
View Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

读题读了好久的说啊-------------- gooooooooooooo

 

你可能感兴趣的:(codeforces)