Codeforces Round #363 (Div. 2)699A,699B,698A
2016-07-23 16:31
127 查看
cf
http://codeforces.com/problemset/problem/699/A
A. Launch of Collider
大意就是找两个相对方向的最小的距离。
B. One Bomb
http://codeforces.com/problemset/problem/699/B
判断所有墙是不是在一点的横纵方向上。
A. Vacations
http://codeforces.com/problemset/problem/698/A
记录当前可能的状态,如果能不休息就不休息。
http://codeforces.com/problemset/problem/699/A
A. Launch of Collider
大意就是找两个相对方向的最小的距离。
#include<algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <map> #include <set> using namespace std; const int INT = 2147483647; int boom[200005]; char lr[200005]; int xy[200005]; int main() { int N; scanf("%d",&N); getchar(); int cnt=0; memset(boom,-1,sizeof(boom)); for(int i=0; i<N; i++) { scanf("%c",&lr[i]); if(lr[i]=='R') { boom[cnt]=i; } else { if(boom[cnt]==-1) { continue; } else { cnt++; } } } for(int i=0; i<N; i++) { scanf("%d",&xy[i]); } int ans=INT; if(cnt==0) { printf("-1\n"); } else { for(int i=0; i<cnt; i++) { if(xy[boom[i]+1]-xy[boom[i]]<ans) { ans=xy[boom[i]+1]-xy[boom[i]]; } } printf("%d\n",ans/2); } return 0; }
B. One Bomb
http://codeforces.com/problemset/problem/699/B
判断所有墙是不是在一点的横纵方向上。
#include<algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <map> #include <set> using namespace std; const int INT = 2147483647; int m,n; char ma[1005][1005]; int x[1005],y[1005]; int main(){ scanf("%d%d",&n,&m); memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); getchar(); int cnt=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%c",&ma[i][j]); if(ma[i][j]=='*'){ x[i]++; y[j]++; cnt++; } } getchar(); } bool flag=true; for(int i=1;flag&&i<=n;i++){ for(int j=1;j<=m;j++){ if(x[i]+y[j]==cnt&&ma[i][j]!='*'){ printf("YES\n%d %d\n",i,j); flag=false; break; } if(x[i]+y[j]==cnt+1&&ma[i][j]=='*'){ printf("YES\n%d %d\n",i,j); flag=false; break; } } } if(flag){ printf("NO\n"); } return 0; }
A. Vacations
http://codeforces.com/problemset/problem/698/A
记录当前可能的状态,如果能不休息就不休息。
#include<algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <map> #include <set> using namespace std; const int INT = 2147483647; int a[105]; int main() { int n,flag=0,ans=0; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d",&a[i]); if(a[i]==0) { flag=0; ans++; } else if(a[i]==1) { if(flag==0) { flag=1; } else if(flag==1) { flag=0; ans++; } else if(flag==2) { flag=1; } else if(flag==3) { flag=1; } } else if(a[i]==2) { if(flag==0) { flag=2; } else if(flag==1) { flag=2; } else if(flag==2) { flag=0; ans++; } else if(flag==3) { flag=2; } } else if(a[i]==3) { if(flag==0) { flag=3; } else if(flag==1) { flag=2; } else if(flag==2) { flag=1; } else if(flag==3) { flag=3; } } //cout<<ans<<" "<<a[i]<<" "<<flag<<endl; } printf("%d",ans); return 0; }
相关文章推荐
- 元素缩放
- C++指针小结:由一个问题引发的。。。。。。。。。。。。。。。。。。。
- 大话设计模式13----建造者模式
- mysql 删除表中某一列的数据及删除某一列的方法
- 主题:rpm安装,LAMP分离+xcache
- 优化DEDECMS模板 让织梦CMS程序生成html页面更快些
- IT职业技能图谱(全套13张)
- 骨牌铺方格 hd 2046
- Mysql批量操作整理
- [php-src]Php扩展的内存泄漏处理思路
- DOCKER
- Initramfs的制作和移植
- PAT乙级1004. 成绩排名 C++
- 织梦DEDECMS栏目列表页翻页URL链接优化
- 类似网易评论UI
- sql之top用法
- windows 画图工具 —— mspaint 的使用
- 测试markdown发布
- HDOJ-1061 Rightmost Digit
- 009-合并表记录