Codeforces#348DIV2/VK CUP 2016

昨天第一次开大小号打cf,发现原来小号提交之后大号在此提交同样的代码会被skipped掉,然后之后提交的代码都不记分,昨天a,b,c都是水题

A

题意:问一个物品最多能被分成多少份,分成的连续两份不能相同

分析:直接1,2这样份,所以除以3乘2,在对3取模

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <string>
 5 #include <vector>
 6 #include <algorithm>
 7 #include <set>
 8 #include <map>
 9 #include <bitset>
10 #include <cmath>
11 #include <queue>
12 #include <stack>
13 using namespace std;
14 int n;
15 int main()
16 {
17     while(cin>>n)
18     {
19         int h=n/3;
20         long long sum=h*2;
21         if(n%3)
22             cout<<sum+1<<endl;
23         else
24             cout<<sum<<endl;
25     }
26     return 0;
27 }
View Code

B

题意:在一定范围内跳,判断最后是否会跳出范围

分析:直接模拟

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <string>
 5 #include <vector>
 6 #include <algorithm>
 7 #include <set>
 8 #include <map>
 9 #include <bitset>
10 #include <cmath>
11 #include <queue>
12 #include <stack>
13 using namespace std;
14 const int maxn=100002;
15 const int maxm=10000000;
16 typedef struct p
17 {
18     char c;
19     int num;
20 }p;
21 p s[maxn];
22 int n;
23 int main()
24 {
25     while(cin>>n)
26     {
27         for(int i=1;i<=n;i++)
28             cin>>s[i].c;
29         for(int i=1;i<=n;i++)
30             cin>>s[i].num;
31         int cnt=0;
32         int pos=1;
33         while(cnt<=maxm){
34             if(s[pos].c=='>'){
35                 pos+=s[pos].num;
36                 if(pos>n) break;
37                 cnt++;
38             }else if(s[pos].c=='<'){
39                 pos-=s[pos].num;
40                 if(pos<1) break;
41                 cnt++;
42             }
43         }
44         if(cnt<maxm)  cout<<"FINITE"<<endl;
45         else   cout<<"INFINITE"<<endl;
46     }
47     return 0;
48 }
View Code

C

题意:给定一些操作,1表示指定行循环左移,2表示指定列循环上移,3表示对指定元素赋值

分析:直接模拟

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <string>
 5 #include <vector>
 6 #include <algorithm>
 7 #include <set>
 8 #include <map>
 9 #include <bitset>
10 #include <cmath>
11 #include <queue>
12 #include <stack>
13 using namespace std;
14 const int maxn=102;
15 const int maxm=10010;
16 int a[maxn][maxn];
17 int x[maxm],y[maxm],r[maxm],c[maxm],t[maxm];
18 int n,m,q;
19 int main()
20 {
21     while(cin>>n>>m>>q)
22     {
23         memset(a,0,sizeof(a));
24         for(int i=0;i<q;i++)
25         {
26             scanf("%d",&t[i]);
27             if(t[i]==1)
28             {
29                 scanf("%d",&y[i]);
30             }else if(t[i]==2){
31                 scanf("%d",&y[i]);
32             }else{
33                 scanf("%d%d%d",&r[i],&c[i],&x[i]);
34             }
35         }
36         for(int i=q-1;i>=0;i--)
37         {
38             int k;
39             if(t[i]==3){
40                 a[r[i]][c[i]]=x[i];
41             }else if(t[i]==2){
42                 k=a[n][y[i]];
43                 for(int j=n;j>1;j--)
44                     a[j][y[i]]=a[j-1][y[i]];
45                 a[1][y[i]]=k;
46             }else{
47                 k=a[y[i]][m];
48                 for(int j=m;j>1;j--)
49                     a[y[i]][j]=a[y[i]][j-1];
50                 a[y[i]][1]=k;
51 
52             }
53         }
54         for(int i=1;i<=n;i++)
55         {
56             for(int j=1;j<m;j++)
57                 printf("%d ",a[i][j]);
58             printf("%d\n",a[i][m]);
59         }
60     }
61 
62     return 0;
63 }
View Code

 

posted @ 2016-04-25 20:51  wolf940509  阅读(331)  评论(0编辑  收藏  举报