Codeforces Round #124 (Div. 2)
来源:互联网 发布:用c语言打印出杨辉三角 编辑:程序博客网 时间:2024/05/16 14:04
转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove
A:博弈问题,一个矩形中,放入半径等于r的圆,谁不能放,就输了。
一开始比较茫然,仔细想一下发现有对称性质,一开始在中心放入一个圆,便将矩形分为对称区域,对手放入一个圆,则自己可以在对称的区域相同的位置放入圆。
#include<iostream>#include<cstring>#include<queue>#include<string>#include<cstdio>#include<vector>#include<algorithm>#include<stack>#define N 105using namespace std;int main(){ int a,b,r; while(scanf("%d%d%d",&a,&b,&r)!=EOF){ if(2*r>a||2*r>b) printf("Second\n"); else printf("First\n"); } return 0;}
B:取极限问题,比较简单,想清楚所有的情况就OK了
#include<iostream>#include<cstring>#include<queue>#include<string>#include<cstdio>#include<algorithm>#define N 105using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int n,m; int a[105],b[105]; while(scanf("%d%d",&n,&m)!=EOF){ for(int i=0;i<=n;i++) scanf("%d",&a[i]); for(int j=0;j<=m;j++) scanf("%d",&b[j]); if(n==m){ if(a[0]*b[0]<0) printf("-"); printf("%d/%d\n",abs(a[0])/gcd(abs(a[0]),abs(b[0])),abs(b[0])/gcd(abs(a[0]),abs(b[0]))); } else if(n>m){ if(a[0]*b[0]<0) printf("-"); printf("Infinity\n"); } else printf("0/1\n"); } return 0;}
C:选出字典序最大的子序列,维护一个单调栈就OK了
#include<iostream>#include<cstring>#include<queue>#include<string>#include<cstdio>#include<vector>#include<algorithm>#include<stack>#define N 105using namespace std;char str[200005];stack<char>s,ans;int main(){ while(scanf("%s",str)!=EOF){ while(!s.empty()) s.pop(); while(!ans.empty()) ans.pop(); int len=strlen(str); for(int i=0;i<len;i++){ if(s.empty()) s.push(str[i]); else{ if(str[i]<=s.top()) s.push(str[i]); else{ while(1){ if(s.empty()) break; if(str[i]>s.top()) s.pop(); else break; } s.push(str[i]); } } } while(!s.empty()){ ans.push(s.top()); s.pop(); } while(!ans.empty()){ printf("%c",ans.top()); ans.pop(); } printf("\n"); } return 0;}
D:一个无限大的地图,问是否能无限走下去。
对于每一个位置,如果可以从多个位置到达,则说明进入了循环,便将是可以无限移动的。
#include<iostream>#include<iomanip>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#include<map>#include<set>#include<queue>#include<string>#include<vector>#define eps 1e-10#define LL long long#define LD long double#define pi acos(-1.0)using namespace std;struct Node{int x,y;}s,u,v,tt;int n,m;int way[4][2]={{0,1},{0,-1},{1,0},{-1,0}};bool flag[1505][1505];int vis[1505][1505][2];char str[1505][1505];bool bfs(){queue<Node>que;que.push(s);memset(flag,false,sizeof(flag));while(!que.empty()){u=que.front();que.pop();for(int i=0;i<4;i++){v=u;v.x+=way[i][0];v.y+=way[i][1];tt.x=((v.x%n)+n)%n;tt.y=((v.y%m)+m)%m;if(str[tt.x][tt.y]=='#')continue;if(flag[tt.x][tt.y]){if(v.x!=vis[tt.x][tt.y][0]||v.y!=vis[tt.x][tt.y][1])return true;}else{flag[tt.x][tt.y]=true;vis[tt.x][tt.y][0]=v.x;vis[tt.x][tt.y][1]=v.y;que.push(v);}}}return false;}int main(){while(scanf("%d%d",&n,&m)!=EOF){for(int i=0;i<n;i++){scanf("%s",str[i]);for(int j=0;j<m;j++)if(str[i][j]=='S'){s.x=i;s.y=j;}}printf("%s\n",bfs()?"YES":"NO");}return 0;}
E:构造???还没搞定,待更新。
- Codeforces Round #124 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #124 (Div. 2) (Div.1)
- Codeforces Round #124 (Div. 1)
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #107 (Div. 2)
- Codeforces Round #108 (Div. 2)
- Codeforces Round #110 (Div. 2)
- Codeforces Round #122 (Div. 2)
- Codeforces Round #121 (Div. 2)
- Codeforces Round #125 (Div. 2)
- The reference to entity "characterEncoding" must end with the ';' delimiter
- iphone内存检测
- libxml2在linux下的使用
- The prefix "mvc" for element "mvc:annotation-driven" is not bound 的解决方法
- 基于OGNL的类型转换
- Codeforces Round #124 (Div. 2)
- Could not parse xs:dateTime: Format.parseObject(String) failed
- android打开系统联系人界面
- phpDocumentor基础
- 双缓冲区实现
- log4j自定义级别并将新级别日志信息输出到指定带日期格式的log文件
- xfire中wsdl中参数为in0,in1解决方法
- showModalDialog和dialogArguments
- xfire整合spring时引入的servlet