A-回文括号序列计数 C-末三位 D-划数 I-贪吃蛇 _2021牛客寒假算法基础集训营6

A-回文括号序列计数

链接:https://ac.nowcoder.com/acm/contest/9986/A
来源:牛客网

题目描述
我们定义一个字符串S是回文的,表示S的左右反转和S相同。

我们定义一个字符串是括号序列:

  1. 空串是括号序列。
  2. 两个括号序列P和Q的拼接是括号序列。
  3. 如果P是括号序列,’(’+P+’)'是括号序列。

求长度为 n (0<=n<=10^9) 的回文括号序列的方案数,对 998244353 取膜。
输入描述:
第一行一个 T 表示数据组数。T<=1000000。

接下来 T 行,每行一个 n 。

输出描述:
T 行。对于每组数据,你的答案。

解题思路:这个括号序列只能是空串的情况下才是回文
考虑一个长度 >=1 的括号序列,如果满足第一个字符和最后一个字符相等:

如果都是左括号则第一个括号无法匹配。

如果都是右括号则最后一个括号无法匹配。

#include<cstdio>
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    int t;
    cin>>t;
    while(t--){
        cin>>n;
        if(n==0)cout<<1<<endl;
        else cout<<0<<endl;
    }
    return 0;
}

D-划数

链接:https://ac.nowcoder.com/acm/contest/9986/D
来源:牛客网

题目描述
一个智能机器人在黑板上写了n个数,它每次划去任意两个数,并在数列的后面写上这两个数的和对11取模的值。

例:5 6 7 8 9,划去5 6后,数列变为7 8 9 0.

有趣的是,机器人在还剩下两个数的时候突然“罢工”了,已知其中一个数cnt(cnt >= 11),求另外一个数的值。

输入描述:
多组测试数据,以 EOF 结尾。

每组数据,第一行输入n和cnt。

第二行输入n个数,第i个数表示num[i]。

输出描述:
每组数据,输出另外一个数的值。

解题思路:模拟

#include<cstdio>
#include<bits/stdc++.h>
#define N 2
int a[1000005];
int main(){
    int n,cnt;
    long long sum = 0;
    while(scanf("%d%d",&n,&cnt)!=EOF){
        for(int i=0; i<n; ++i){
            scanf("%d",&a[i]);
        }
        if(n==2){  //考虑特殊情况
            if(a[0]==cnt)
                printf("%d\n",a[1]);
            else printf("%d\n",a[0]);
        }
        else{
            sum = 0;
            for(int i=0; i<n; ++i){
                if(a[i]!=cnt){
                    sum = (sum+a[i])%11;
                }
            }
            printf("%d\n",sum);
        }
    }
    return 0;
}

C-末三位

链接:https://ac.nowcoder.com/acm/contest/9986/C
来源:牛客网

题目描述
牛牛最近刚学完指数,他理解了22=4,33=272
2
=4,3
3
=27…

但是,他现在想知道:5^n的末三位是多少?

输入描述:
有多组输入数据。

每组数据输入一个数n,表示指数。

输出描述:
输出5^n的末三位。

解题思路:快速幂

#include<cstdio>
#include<bits/stdc++.h>
#define N 2
int power(int a,int b,int c)
{
    int ans = 1;
    while(b){
        if(b&1){
            ans = ans * a % c;
        }
        a = a * a % c;
        b >>= 1;
    }
    return ans;
}
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        printf("%03d\n",power(5,n,1000));
    }
    return 0;
}

I-贪吃蛇

链接:https://ac.nowcoder.com/acm/contest/9986/I
来源:牛客网

题目描述
无限增长的贪吃蛇小游戏:

在一个n*m的迷宫中,有一条小蛇,地图中有很多围墙,猥琐的出题者用“#”表示,而可以走的路用“.”表示,小蛇他随机出生在一个点上,出生点表示为“S”,他想抵达的终点表示为“E”,小蛇有一个奇怪的能力,他每走一格便会增长一格,即他走了一格后,他的尾巴不会缩回。

小蛇想知道他怎么到达他想去的地方,请你帮助他。

PS:每格长1米,贪吃蛇规定不能撞墙,不能咬自己的身体。
输入描述:
第一行:输入N,M;

第二行:输入S的坐标Xs,Ys,E的坐标Xe,Ye;

后面的N行:

每行输入M个数,描述每一行的情况。

输出描述:
输出一个数,小蛇到达终点的最短距离(单位:cm),若无法达到,输出-1

解题思路:bfs搜索路径,一有路径就停下来这就是最短路径

#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
struct node
{
    int x,y,s;
};
int book[105][105]={0};
int main(){
    int nextt[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
    struct node que[10005];

    char a[105][105];
    int n,m,startx,starty,endx,endy;
    scanf("%d%d",&n,&m);
    scanf("%d%d%d%d",&startx,&starty,&endx,&endy);
    for(int i=1; i<=n; ++i){
        for(int j=1; j<=m; ++j){
            scanf(" %c",&a[i][j]);
        }
    }
    int tail,head;
    head = tail = 0;
    que[tail].x = startx;
    que[tail].y = starty;
    que[tail].s = 0;
    tail++;
    book[startx][starty] = 1;
    int flag = 0;
    while(head<tail){
        int tx,ty;
        for(int i=0; i<4; ++i){
            tx = que[head].x + nextt[i][0];
            ty = que[head].y + nextt[i][1];
            if(tx<1||tx>n||ty<1||ty>m){
                continue;
            }

            if(a[tx][ty]=='.' && !book[tx][ty]){
                book[tx][ty] = 1;
                que[tail].x = tx;
                que[tail].y = ty;
                que[tail].s = que[head].s+1;
                //cout<<tx<<' '<<ty<<' '<<que[tail].s<<endl;
                tail++;
               
            }
             if(tx==endx && ty==endy){
                    flag = 1;
                    break;
                }
        }
        if(flag==1)
            break;
        head++;
    }
    if(flag==0){
        printf("-1\n");
    }
    else
        printf("%d\n",que[tail-1].s*100);
    return 0;
}

已标记关键词 清除标记
相关推荐
<p> <strong><span style="font-size:20px;color:#FF0000;">本课程主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者</span></strong> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">1. 包含:<span style="color:#FFFF00;background-color:#FF0000;">项目源码、</span><span style="color:#FFFF00;background-color:#FF0000;">项目文档、据库脚本、软件工具</span>等所有资料</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">2. 手把手的带你从零开始部署运行本套系统</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">3. 该项目附带的源码资料可作为毕设使用</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">4. 提供技术答疑和远程协助指导</span></strong></span><strong><span style="font-size:18px;"></span></strong> </p> <p> <br /> </p> <p> <span style="font-size:18px;"><strong>项目运行截图:</strong></span> </p> <p> <strong><span style="font-size:18px;">1)系统登陆界面</span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015433522.png" alt="" /><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">2)学生模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015575966.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">3)教师模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016127898.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">4)系统管理员</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016281177.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016369884.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">更多Java毕设项目请关注我的毕设系列课程 <a href="https://edu.csdn.net/lecturer/2104">https://edu.csdn.net/lecturer/2104</a></span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页