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

简介: 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<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<queue>
#include<stack>
#include<map>
using namespace std;
const long long inf =0x3f3f3f3f;
const int maxn=1e6+5; 
const long long mod =19260817;
#define PI 3.14159265358979323846
#define ll long long
#define ull unflaged ll
inline 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!"<<endl;
    }
    else cout<<"Keep rowing!"<<endl;
}

问题 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:从炸弹找人

#include<bits/stdc++.h>
using 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<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<queue>
#include<stack>
#include<map>
using namespace std;
const long long inf =0x3f3f3f3f;
const int maxn=1e6+5; 
const long long mod =19260817;
#define PI 3.14159265358979323846
#define ll long long
#define ull unflaged ll
inline 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<<ans<<endl;
}
/*
5 5 2
.B#P.
.P#..
.#...
.P..B
..B..
*/
目录
相关文章
|
8月前
|
编译器 芯片
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
55 0
|
8月前
|
芯片
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(二)
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(二)
56 0
|
8月前
|
算法 编译器 C语言
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(一)
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog
59 0
|
9月前
|
机器学习/深度学习
UPC - 2022春混合个人训练赛第五场 D Seahorse Shoes(贪心+模拟)
UPC - 2022春混合个人训练赛第五场 D Seahorse Shoes(贪心+模拟)
59 0
|
8月前
|
编译器 芯片
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(三)
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(三)
47 0
|
8月前
|
算法 编译器 芯片
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(上)
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog
63 0
|
8月前
|
数据可视化 Go
一行代码绘制高分SCI火山图
经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。
188 0
|
人工智能
UPC——2020年春混合个人训练第二十四场(DEFG)
UPC——2020年春混合个人训练第二十四场(DEFG)
85 0
UPC——2020年春混合个人训练第二十四场(DEFG)
|
人工智能
upc2021个人训练赛第23场M: 紫罗兰(dsu)
upc2021个人训练赛第23场M: 紫罗兰(dsu)
65 0
upc2021个人训练赛第22场A. 联通数(思维)
upc2021个人训练赛第22场A. 联通数(思维)
39 0