CodeForces #124 DIV2
2013-08-20 11:07
204 查看
A题:博弈问题,一个矩形放入一个半径为r的圆中,不能放的人就输
可以发现,当在矩形中心放入圆时,就把矩形分成了对称的区域,当对手放进某个区域时,先手可以放在与它对称的区域内
代码:
B题:取极限问题,分情况讨论就可以
代码:
C题:选出选出字典序最大的子序列,用一个桟单调维护
代码:
D题:一个无限大的地图,问是否能够无限走下去
对于每一个位置,如果可以从多个位置到达,则说明进入了循环,便将是可以无限移动的。
代码:
可以发现,当在矩形中心放入圆时,就把矩形分成了对称的区域,当对手放进某个区域时,先手可以放在与它对称的区域内
代码:
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<set> #include<map> #include<queue> #include<vector> #include<string> using namespace std; const int M=1005; int main() { int a,b,r; scanf("%d%d%d",&a,&b,&r); if(2*r>a || 2*r >b) printf("Second\n"); else printf("First\n"); return 0; }
B题:取极限问题,分情况讨论就可以
代码:
#include<cstdio>//B #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<set> #include<map> #include<queue> #include<vector> #include<string> using namespace std; int a[105],b[105]; int gcd(int a,int b) { if(b==0)return a; return gcd(b,a%b); } int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0; i<=n; i++) scanf("%d",&a[i]); for(int i=0; i<=m; i++) scanf("%d",&b[i]); if(n==m) { if(a[0]*b[0]<0) printf("-"); int aa=gcd(abs(a[0]),abs(b[0])); printf("%d/%d",abs(a[0])/aa,abs(b[0])/aa); } else if(n>m) { if(a[0]*b[0]<0) printf("-"); printf("Infinity\n"); } else printf("0/1"); } return 0; }
C题:选出选出字典序最大的子序列,用一个桟单调维护
代码:
#include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<stack> #include<map> #include<queue> #include<vector> #include<string> using namespace std; const int M=100005; stack<int>s1; stack<int>s2; char a[M]; int main() { while(scanf("%s",a)!=EOF) { while(!s1.empty()) s1.pop(); while(!s2.empty()) s2.pop(); int l=strlen(a); for(int i=0;i<l;i++) { if(s1.empty()) s1.push(a[i]); else { if(a[i]<=s1.top()) s1.push(a[i]); else { while(!s1.empty() && a[i]>s1.top()) s1.pop(); s1.push(a[i]); } } } while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } while(!s2.empty()) { printf("%c",s2.top()); s2.pop(); } printf("\n"); } return 0; }
D题:一个无限大的地图,问是否能够无限走下去
对于每一个位置,如果可以从多个位置到达,则说明进入了循环,便将是可以无限移动的。
代码:
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<stack> #include<map> #include<queue> #include<vector> using namespace std; const int M=100005; char a[1505][1505]; int vis[1505][1505][2]; int F[1505][1505]; int dis[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; struct node { int x,y; }; int n,m; bool bfs(int si,int sj) { queue<node>q; node cur,next; cur.x=si; cur.y=sj; q.push(cur); memset(F,0,sizeof(F)); while(!q.empty()) { cur=q.front(); q.pop(); for(int i=0;i<4;i++) { next.x=cur.x+dis[i][0]; next.y=cur.y+dis[i][1]; int x=((next.x%n)+n)%n; int y=((next.y%m)+m)%m; if(a[x][y]=='#')continue; if(F[x][y]) { if(next.x!=vis[x][y][0] || next.y !=vis[x][y][1]) return true; } else { F[x][y]=1; vis[x][y][0]=next.x; vis[x][y][1]=next.y; q.push(next); } } } return false; } int main() { scanf("%d%d",&n,&m); getchar(); for(int i=0;i<n;i++) scanf("%s",a[i]); int si,sj; for(int i=0;i<n;i++) for(int j=0;j<m;j++) { if(a[i][j]=='S') { si=i; sj=j; break; } } bool ff=bfs(si,sj); if(ff) printf("YES\n"); else printf("NO\n"); return 0; }
相关文章推荐
- CodeForces Div124-1 hrbust 1474 哈理工oj 求字典序最大的子串【贪心】
- Codeforces Div2 243AB
- Codeforces 202(DIV2)A
- Codeforces 242(DIV 2) C题
- 【codeforces】Round #316 (Div. 2)
- 【Codeforces Round #369 (Div. 2)】Codeforces 711B Chris and Magic Square
- codeforces 127 div2
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem E (Codeforces 828E) - 分块
- 第二十次codeforces竞技结束 #276 Div 2
- Codeforces Round #403 div2 (CodeForces - 782) 题解
- codeforces 675 A~E(Round #353 Div. 2) python and C++ 解法
- Codeforces Round #404 div2 (CodeForces - 785ABCD) 题解
- CodeForces - 148D. Bag of mice//Codeforces Round #105 (Div. 2)
- Codeforces #277.5 (Div. 2) B. BerSU Ball(DP:LCS)
- Codeforces (441A) Round #252 (Div. 2) A题
- Codeforces 592 A. PawnChess 【Codeforces Round #328 (Div. 2)】
- Codeforces Round #124 (Div. 1) E. Opening Portals
- Codeforces 433C #248_div1_A 中位数的应用
- Codeforces 716A Crazy Computer 【模拟】 (Codeforces Round #372 (Div. 2))
- 【Codeforces Round #372 (Div. 2)】Codeforces 716A Crazy Computer