Codeforces Round #328 (Div. 2)
来源:互联网 发布:学会python要多久 编辑:程序博客网 时间:2024/05/01 13:19
A. PawnChess
【题意】8*8网格,(x,y)表示第x行第y列,白色棋子('W')只能向上移动,黑色棋子(’B‘)只能向下移动,‘.'表示为空。若白色棋子通过向上移动(x-1,y)先到第一行,则A赢,黑色棋子通过向下移动(x+1,y)先到第八行,则B赢。给定方格中各个棋子的位置,求A,B谁赢?
【分析】用数组分别保存白色和黑色棋子的横纵坐标,对横坐标进行加减,并判断下一格是否可走。
【代码】
#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <set>#include <map>#include <algorithm>#include <stack>#include <queue>#include <cmath>#include<ctime>using namespace std;const int mod=int(1e9)+7,INF=0x3fffffff,maxn=1e5+40;char p[10][10];int rw[100];int cw[100];int rb[100];int cb[100];int main (void){ int resultA=maxn,resultB=maxn; int k=0,m=0; for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { cin>>p[i][j]; if(p[i][j]=='W') { rw[k]=i; cw[k]=j; k++; } else if(p[i][j]=='B') { rb[m]=i; cb[m]=j; m++; } } } for(int i=0;i<k;i++) { for(int T=rw[i]-1;T>=0;T--) { if(p[T][cw[i]]!='.') break; if(T==0) resultA=min(resultA,rw[i]); } } for(int i=0;i<m;i++) { for(int T=rb[i]+1;T<8;T++) { if(p[T][cb[i]]!='.') break; if(T==7) resultB=min(resultB,7-rb[i]); } } if(resultA>resultB) cout<<"B"<<endl; else cout<<"A"<<endl;}
【题意】凸n边形,以每个角为起点画射线,遇到另一个角或者线停止,求这些线将凸n边形分成几个部分。
【分析】将凸n边形各个角编号1~n,将编号为1的角与其余各角相连,则多边形被分成n-2个三角形,将i,i+1与其余各个角相连,则编号为1,i,i+1构成的三角形被分成了(n-i)+(i-2)=n-2个三角形,整个凸边形被分成共(n-2)*(n-2)个三角形。由于各个三角形总有公共边或公共角,故松鼠跳(n-2)*(n-2)下就可以吃到所有三角形里的所有核桃。
【代码】
#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <set>#include <map>#include <algorithm>#include <stack>#include <queue>#include <cmath>using namespace std;const int mod=int(1e9)+7,INF=0x3fffffff,maxn=1e5+40;int main (void){ long long n; cin>>n; cout<<(n-2)*(n-2);}
C. The Big Race
【题意】读题读了好久.....给定最大数t,求[1,t]区间内使b,w同余的数的个数total,输出total/t,以最简分数形式表示。
【分析】求出w,b最小公倍数lcm,求出n=t/lcm,便已经有了n*min(w,b)个使b,w同余的数,再加上min(t%lcm,min(w-1,b-1)),即为所求。
【代码】
#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <set>#include <map>#include <algorithm>#include <stack>#include <queue>#include <cmath>#include<ctime>using namespace std;const int mod=int(1e9)+7,INF=0x3fffffff,maxn=1e5+40;typedef long long ll;ll gcd(ll a, ll b){ return b==0?a:gcd(b,a%b);}int main (void){ ll t,w,b,m,total=0; scanf("%I64d%I64d%I64d",&t,&w,&b); ll Min=min(w,b); ll g=gcd(w,b); ll lcm=0; if(t/w >= b/g) { lcm = b/g*w; total= t/lcm *Min+ min(t%lcm,Min-1); } else total=min(t,Min-1); ll a=gcd(total,t); printf("%I64d/%I64d\n",total/a,t/a);}改了很多次才A,有的是不知道哪里的问题,有的是知道哪里错了就是改不对。。。哭哭。。。
盲忙茫,知道差太多可是又不知道怎么正确的努力。也就,坚持吧。。。。。
先写三道。
0 0
- Codeforces Round #328 (Div. 2)
- Codeforces Round #328 (Div. 2)
- Codeforces Round #328 (Div. 2)_A. PawnChess
- Codeforces Round #328 (Div. 2) C ,D
- Codeforces Round #328 (Div. 2) A PawnChess
- Codeforces Round #328 (Div. 2)A. PawnChess
- Codeforces Round #328 (Div. 2) A. PawnChess
- Codeforces Round #328 (Div. 2) A. PawnChess
- PawnChess (Codeforces Round #328 (Div. 2) )
- Codeforces Round #328 (Div. 2)A. PawnChess
- Codeforces Round#328 div.2 C
- Codeforces 592 A. PawnChess 【Codeforces Round #328 (Div. 2)】
- 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)
- 粒子群算法的matlab实现
- 【程序44】 题目:一个偶数总能表示为两个素数之和。
- 拼图小游戏“ST--拼图”开发篇之主要功能的实现(三)
- AlertDialog的初步了解
- 新手必看之UILabel
- Codeforces Round #328 (Div. 2)
- Django中与Html相关的filter
- UFT
- 使用帧缓冲区进行三维交互
- 王爽第九章依据位移进行转移的jmp指令
- hdu1248寒冰王座【完全背包入门题】
- HANA学院(7)- (5)从SAP HANA Studio连接到SAP HANA
- jfinal集成spring cxf做webservice服务
- [sicily]1509. Rails