代码改变世界

Codeforces Round #514 (Div. 2)

2018-10-06 16:30  hhh0729  阅读(112)  评论(0)    收藏  举报

A. Cashier

题意:总工作时长为L分钟,共服务n个顾客,第i个顾客在ti时刻到达,并逗留li分钟,若没有顾客,则可以花费连续的a分钟休息一次,问最多能休息几次。

思路:

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int start[100024],b[100024];
 5 int main()
 6 {
 7     int n,L,a,sum=0;
 8     cin>>n>>L>>a;
 9     for(int i=0;i<n;i++){
10         cin>>start[i]>>b[i];
11         b[i]+=start[i];
12     } 
13     sort(start,start+n);
14     sort(b,b+n);
15     for(int i=0;i<n-1;i++)
16         sum+=( start[i+1] - b[i] )/a;
17     sum+=start[0]/a + ( L-b[n-1] )/a;
18     cout<<sum<<endl;
19     return 0;
20 }
View Code

B. Forgery

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<string>
 4 using namespace std;
 5 string s[1024];
 6 int n,m,a[1024][1024];
 7 void paint(int x,int y){
 8     a[x+1][y]++;
 9     a[x-1][y]++;
10     a[x][y+1]++;
11     a[x][y-1]++;
12     a[x+1][y+1]++;
13     a[x+1][y-1]++;
14     a[x-1][y+1]++;
15     a[x-1][y-1]++;
16 }
17 int can_paint(int x,int y){
18     int flag=1;
19          if(a[x+1][y]==0) flag=0;
20     else if(a[x-1][y]==0) flag=0;
21     else if(a[x][y+1]==0) flag=0;
22     else if(a[x][y-1]==0) flag=0;
23     else if(a[x-1][y-1]==0) flag=0;
24     else if(a[x-1][y+1]==0) flag=0;
25     else if(a[x+1][y-1]==0) flag=0;
26     else if(a[x+1][y+1]==0) flag=0;
27     return flag;
28 }
29 int main()
30 {
31     int flag=1;
32     cin>>n>>m;
33     for(int i=0;i<n;i++)
34         cin>>s[i];
35     for(int i=0;i<n;i++)
36         for(int j=0;j<m;j++)
37             if(s[i][j]=='#')
38                 a[i][j]=1;
39             else
40                 a[i][j]=0;
41     for(int i=1;i<n-1;i++){
42         for(int j=1;j<m-1;j++){
43             if(can_paint(i,j))
44                 paint(i,j);
45         }
46     }
47     for(int i=0;i<n;i++){ 
48         for(int j=0;j<m;j++){
49             if(a[i][j]==1){
50                 flag=0;
51                 break;
52             } 
53         } 
54         if(flag==0)
55             break;
56     } 
57     if(flag)
58         cout<<"YES"<<endl;
59     else
60         cout<<"NO"<<endl;
61     return 0;
62 }
View Code 

C. Sequence Transformation