UPC——2020年春混合个人训练第二十五场(FG)

网友投稿 231 2022-09-21

UPC——2020年春混合个人训练第二十五场(FG)

太菜了只能写写签到

问题 F: 求生大作战

时间限制: 1 Sec 内存限制: 128 MB [提交] [状态]题目描述 PinkRabbit 又趁 Czhou 不注意划水了,今天他打开了求生大作战,一共划了3次,每次划水时间分别为 t1,t2,t3,如果 PinkRabbit 的划水时间大于给定的时间 T,他就会被 Czhou 发现并跑 3000m。

PinkRabbit 想知道,他要不要跑步。如果要,请输出Go running!,否则输出Keep rowing!。输入 输入有 1 行,包含四个非负整数 t1,t2,t3,T(1≤t1,t2,t3,T≤1018),分别表示 PinkRabbit 三次划水时间和限制时间。相邻两个数之间用一个空格隔开。输出 输出只有 1 行,包含一个字符串,Go running!或Keep rowing!。样例输入 Copy 60 60 60 19260817样例输出 Copy Keep rowing!

模拟,要开long long

#include#include#include#include#include#include#include#includeusing namespace std;const long long inf =0x3f3f3f3f;const int maxn=1e6+5; const long long mod =19260817;#define#define#defineinline int read(){ int x=0,f=1;char s=getchar(); while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();} while(s<='9'&&s>='0'){x=x*10+s-'0';s=getchar();} return x*f;}int main(){ ll t1,t2,t3,t; cin>>t1>>t2>>t3>>t; ll ans=t1+t2+t3; if(ans>t) { cout<<"Go running!"<

问题 G: Q版泡泡堂

时间限制: 1 Sec 内存限制: 128 MB [提交] [状态]题目描述 Q 版泡泡堂是一种多人对战游戏,最多可以有四人参与游戏,每个人可以通过使用炸弹或其他道具来破坏砖块并消灭别人,最后剩下的那个人将会夺取胜利。

Dodo 现在开始研究 Q 版泡泡堂的 AI ,现在他需要 AI 的一个部分,就是在给定的一个局面,求出将会有多少个人被炸弹消灭。

地图是这样描述的:对于一个空地,用“.”表示;对于一个人,用P表示;对于一个炸弹,用B表示;对于墙,用#表示。

对于一枚炸弹,它会影响半径为 p 的一个十字形内的人,但如果有一个方向有墙,那么这个炸弹不会影响到这个方向上墙以外的人。

因为 dodo 忙着划水,所以他把这个问题交给了善于做题的你。输入 输入的第一行,包含三个正整数 n,m,p(1≤n,m≤500,1≤p≤10),每两个数间以一个空格分开,分别代表地图的行数和列数和炸弹的爆炸半径。

接下来的 n 行,每行 m 个字符,表示地图。输出 输出一个整数,为会被炸弹消灭的人数。样例输入 Copy 5 5 2 .B#P. .P#… .#… .P…B …B…样例输出 Copy 1

模拟,可以从炸弹找人,也可以从人找炸弹。 要注意遇到墙就不走了。 my:从炸弹找人

#includeusing namespace std;typedef unsigned long long ull; const int maxn=510;char mp[maxn][maxn];int vis[maxn][maxn];int n,m,k;int res=0;int nx[4]={0,0,1,-1};int ny[4]={1,-1,0,0}; void dfs(int x,int y){ for(int i=x+1;i<=min(x+k,n);i++){ if(mp[i][y]=='#') break; else if(mp[i][y]=='P'&&!vis[i][y]) vis[i][y]=1,res++; } for(int i=x-1;i>=max(0,x-k);i--){ if(mp[i][y]=='#') break; else if(mp[i][y]=='P'&&!vis[i][y]) vis[i][y]=1,res++; } for(int i=y-1;i>=max(0,y-k);i--){ if(mp[x][i]=='#') break; else if(mp[x][i]=='P'&&!vis[x][i]) vis[x][i]=1,res++; } for(int i=y+1;i<=min(y+k,n);i++){ if(mp[x][i]=='#') break; else if(mp[x][i]=='P'&&!vis[x][i]) vis[x][i]=1,res++; } } void AC(){ scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++) cin>>mp[i]+1; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(mp[i][j]=='B') dfs(i,j); printf("%d\n",res);}int main(){ AC(); return 0;}

​​队友的:​​从人找炸弹

#include#include#include#include#include#include#include#includeusing namespace std;const long long inf =0x3f3f3f3f;const int maxn=1e6+5; const long long mod =19260817;#define#define#defineinline int read(){ int x=0,f=1;char s=getchar(); while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();} while(s<='9'&&s>='0'){x=x*10+s-'0';s=getchar();} return x*f;}char a[505][505];int main(){ int n,m,p; cin>>n>>m>>p; for(int i=1;i<=n;i++) { cin>>a[i]+1; } ll ans=0; int flag1,flag2,flag3; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { flag3=0; if(a[i][j]=='P') { for(int k=j-1;k>=j-p&&k>=1;k--) { if(a[i][k]=='#') { break; } else if(a[i][k]=='B')//有炸弹没 { //ans++; flag3=1; break; } } for(int k=j+1;k<=j+p&&k<=m;k++) { if(a[i][k]=='#') { break; } else if(a[i][k]=='B')//有炸弹没 { //ans++; flag3=1; break; } } for(int k=i-1;k>=1&&k>=i-p;k--) { if(a[k][j]=='#') { break; } else if(a[k][j]=='B')//有炸弹没 { //ans++; flag3=1; break; } } for(int k=i+1;k<=n&&k<=i+p;k++) { if(a[k][j]=='#') { break; } else if(a[k][j]=='B')//有炸弹没 { //ans++; flag3=1; break; } } } if(flag3) ans++; } } cout<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:UPC——2020年春混合个人训练第二十四场(DEFG)
下一篇:全媒派:“娱乐”何以“至死”?尼尔·波兹曼在流行文化中的误读!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~