• 弹指间计算机协会 2021“千里码”程序设计竞赛 题面


    A.Hello World!

    Description

    为保证所有参赛人员在比赛中都能拿到分数,本题只考察c++的输出。
    算法比赛不仅考察思考问题的能力,也需要一定的细心程度。
    直接输出" HelI0 Wor1d!!" ,您将获得此题的全部分数。

    Input

    本题无输入

    Output

    输出" HelI0 Wor1d!!"

    Sample Input 1

    Sample Output 1

     HelI0 Wor1d!!
    
    • 1

    Hint

    复制

    B.A+B问题

    Description

    给定两个正整数 a a a b b b,请求出 a + b a+b a+b
    注意:仅本题禁用python

    Input

    输入一共两行
    第一行为正整数 a a a
    第二行为正整数 b b b

    Output

    一个正整数, a + b a+b a+b

    Sample Input 1

    1
    1
    
    • 1
    • 2

    Sample Output 1

    2
    
    • 1

    Sample Input 2

    12345678987654321114514778
    987654321100001001010086
    
    • 1
    • 2

    Sample Output 2

    13333333308754322115524864
    
    • 1

    Hint

    数据规模及范围
    对于 50 % 50\% 50%的数据, 0 < a , b < 2 31 − 1 00<a,b<2311
    对于 80 % 80\% 80%的数据, 0 < a , b < 2 64 − 1 00<a,b<2641
    对于 100 % 100\% 100%的数据, 0 < a , b < 1 0 500 0 0<a,b<10500

    C.勇敢猫猫

    Description

    江苏大学校园里有很多猫,在钟灵路两边的草坪上,时不时会有小猫出现。很多喜爱猫的同学会在校园内喂猫、rua猫,猫猫们的生活很惬意。
    现在钟灵路的南端有一只小黑猫,它必须沿着钟灵路一路向北到达猫猫聚集地。在起点时他的饥饿值(整数)是0。路上有nn个静止的同学,按顺序排成序列aa,每个同学的属性值是 a i ( 1 ≤ i ≤ n ) a_{i}(1 \le i \le n) ai(1in),一部分同学只会rua猫,另一部分同学只会喂猫。当小黑猫被rua时,其饥饿值会减掉 a i a_{i} ai ;当小黑猫被喂时,其饥饿值会增加 a i a_{i} ai

    小黑猫会隐身,它只想在这个序列 a a a的仅一个连续区间内 [ L , R ] ( 1 ≤ L ≤ R ≤ n ) [L,R](1 \leq L \leq R \leq n) [L,R](1LRn)现形,来让同学们rua或喂。请你找到那个区间,使小黑猫的饥饿值最大。

    Input

    第1行输入一个正整数 n n n
    从第2行到第 n + 1 n+1 n+1行输入 n n n个整数 a i a_{i} ai ,表示第 i i i个同学的属性值

    Output

    输出一个整数表示最大饥饿值

    Sample Input 1

    5
    3
    -2
    2
    1
    -1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Sample Output 1

    4
    
    • 1

    Hint

    对于样例,小黑猫会在区间 [ 1 , 4 ] [1,4] [1,4]现形,饥饿值为 3 − 2 + 2 + 1 = 4 3-2+2+1=4 32+2+1=4 4 4 4是它能达到的最大饥饿值,在 [ 1 , 4 ] [1,4] [1,4]之外的任意一个区间内它能获得的饥饿值均小于 4 4 4

    数据规模及范围
    对于 30 % 30\% 30%的数据, 0 < n ≤ 100 0 < n \le 100 0<n100
    对于 60 % 60\% 60%的数据, 0 < n ≤ 1 0 4 0 < n \le 10^4 0<n104
    对于 100 % 100\% 100%的数据, 0 < n ≤ 1 0 6 , − 1 0 4 ≤ a i ≤ 1 0 4 0 0<n106,104ai104

    D.爱打炉石的老社长

    Description

    老社长是一个炉石传说的忠实玩家。
    但暴雪战网最近不仅鸽了暴雪嘉年华,而且鸽了守望先锋2。
    暴雪战网的炉石传说组也开始摆烂:设计越来越超模的卡牌,推出越来越多的骗氪活动。
    在炉石传说新卡包《奥特兰克的决裂》中有一张卡牌话痨奥术师,它的效果如下:对所有其他随从造成1点伤害,如果有随从死亡,则重复此效果。
    在这里插入图片描述
    例如,若战场上有两个随从,编号记为1和2,生命值分别为2和1,则使用该卡牌会先杀死2号随从的同时将1号随从生命值变成1。
    然后,由于2号随从死亡,话痨奥术师触发“重复此效果”,将1号随从杀死。
    现在战场上有 n n n个随从,编号记为 1 ~ n 1~n 1n。每个随从的生命值不同。对于编号为 i i i 的随从,生命值为 a i a_{i} ai​。
    老社长想知道,他发动话痨奥术师的效果能否消灭战场上的所有随从。

    Input

    第一行一个数字 T T T,表示数据组数,每组数据之间相互独立。
    接下来 2 T 2T 2T行为 T T T组数据。
    2 T 2T 2T行一个数字 n n n,表示随从的个数。
    2 T + 1 2T+1 2T+1行包含 n n n个以空格分隔的整数 a i a_{i} ai ,代表编号为 i i i的随从的生命值。

    Output

    若“话痨奥术师”能消灭战场上所有随从,输出"True"。否则,输出"False"。

    Sample Input 1

    2
    2
    2 1
    3
    1 1 3
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Sample Output 1

    True
    False
    
    • 1
    • 2

    Sample Input 2

    2
    6
    1 2 3 3 4 5
    3
    2 4 1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Sample Output 2

    True
    False
    
    • 1
    • 2

    Hint

    数据规模及范围:
    对于 100 % 100\% 100%的数据
    1 ≤ n ≤ 10000 1≤n≤10000 1n10000
    1 ≤ a i ≤ 10000 1≤a_{i}≤10000 1ai10000
    1 ≤ T ≤ 10 1≤T≤10 1T10

    E.up袋口校园

    Description

    小明录取了蓝翔拖拉机技校,这个学校有一条奇怪的校规:每个学生都得下载一款名为“up袋口校园”的软件,每次参加活动时都会记录活动分数称为“up学分”。若“up学分”不达到某个数值,则学生可能会面临不能毕业的风险。
    又到了一个周六,学校四处又开始组织各种活动。学校有 n n n处地点正在组织活动,这些地点的编号记为 1 ~ n 1~n 1n。校大门为 1 1 1号地点,也在组织活动。
    每个活动都提供up学分。第 i i i号地点会提供 u i u_{i} ui个up学分。
    蓝翔拖拉机技校的地图很特殊。这个学校只有 n − 1 n-1 n1条大马路,而且这些大马路不会连成一个环。在这一个周六,所有的大马路只能单向通行。因此,存在某些地点使得学生没有大马路可走。大马路编号为 1 ~ n − 1 1~n-1 1n1
    小明从校大门出发。在他无大马路可走之前,他最多能获得多少up学分?

    Input

    输入的第一行包含一个整数 n n n,表示学校的活动地点数量。
    输入的第二行包含 n n n个整数,表示每个地点提供的up学分数量 u i u_{i} ui
    接下来 n − 1 n-1 n1行,每行二个整数 P i , Q i P_{i},Q_{i} Pi,Qi ,表示从 P i P_{i} Pi号地点到 Q i Q_{i} Qi号地点有一条单行的大马路。
    1 ≤ n ≤ 100 1≤n≤100 1n100
    1 ≤ u i ≤ 100 1≤u_{i}≤100 1ui100

    Output

    输出一个整数,表示小明最多获得的up学分是多少。

    Sample Input 1

    3 
    2 1 3
    1 2
    1 3
    
    • 1
    • 2
    • 3
    • 4

    Sample Output 1

    5
    
    • 1

    Hint

    数据规模及范围
    1 ≤ n ≤ 100 1≤n≤100 1n100
    1 ≤ u i ≤ 100 1≤u_{i}≤100 1ui100

    F.小鸡的复仇

    Description

    老鹰抓小鸡是民间小朋友们经常玩的一个游戏。
    通常小鸡在母鸡的保护下,通过灵活走位躲闪老鹰的攻击。
    今天,小鸡们决定进行复仇。
    n n n只小鸡站成一排,依次编号为 1 ~ n 1~n 1n。每只小鸡的属性不同,对于编号为 i i i 的小鸡,需要队伍中存在 b i b_{i} bi只小鸡才能将其推动,可以对老鹰造成 a i a_{i} ai点伤害​。
    小鸡们可以发起任意次行动,每次行动可以是攻击或调整。
    攻击:队首的小鸡对老鹰发起攻击,假设该小鸡的编号为 p p p,则会对老鹰造成 a p a_{p} ap点伤害 。同时队首开始的 b p b_{p} bp只小鸡因为耗尽体力也将脱离队伍,无法参加游戏。注意:如果队伍中不足 b p b_{p} bp只小鸡,则队首的小鸡无法发动攻击。
    调整:队首的小鸡进行调整,转移到队尾。注意:小鸡们的编号是不会更改的,如:开始队伍为1,2,3,4,5;调整一次后为2,3,4,5,1。

    Input

    第一行一个数字 n n n,表示小鸡的个数。
    接下来 n n n行,每行两个数字 a a a b b b,含义见题意。

    Output

    一行一个数字,表示能对老鹰造成的最大伤害值。

    Sample Input 1

    5
    1 1
    2 2
    3 2
    4 3
    1 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Sample Output 1

    7
    
    • 1

    Hint

    先进行三次调整,序列变为 45123 4 5 1 2 3 45123
    此时进行一次攻击, 对老鹰造成 4 4 4点伤害,同时,队头开始的三只小鸡离开队伍,此时序列变为 23 2 3 23
    再进行一次调整,序列变为 32 3 2 32
    此时进行一次攻击,对老鹰造成 3 3 3点伤害,同时,队头开始的两只小鸡离开队伍,此时序列为空,无法再进行攻击。
    总得分为 7 7 7
    数据规模及范围
    n ≤ 200 n≤200 n200
    1 ≤ a i ​ , b i ​ ≤ 1000 1≤a_i​,b_i​≤1000 1ai,bi1000

    G.简单题

    Description

    现在你已经来到了最后一题,在出题组的威(si)逼(chan)利(lan)诱(da)之下,我要糊一个简单题才能蒙混过关。
    那么,一起来看看有多少个简单子序列吧。
    一个简单子序列的定义是,以easyeasy开头,后面跟任意个字符(包括00)的字符串。
    给定仅由小写字母构成的字符串ss,请问ss的所有子序列中,有多少满足简单子序列?
    提示:如果可以通过删除几个字符(包括00)从 s s s获得 s ′ s' s ,则字符串 s ′ s' s是字符串 s s s的子序列。

    Input

    第一行包含一个整数 n n n,为字符串 s s s的长度。
    第二行包含一个仅由小写字母组成的字符串 s s s

    Output

    输出一个整数,为 s s s的所有子序列中简单子序列的个数。
    答案可能很大,请输出除以1000000007的余数。

    Sample Input 1

    6
    eassyy
    
    • 1
    • 2

    Sample Output 1

    6
    
    • 1

    Sample Input 2

    24
    veryeasyveryeasyveryeasy
    
    • 1
    • 2

    Sample Output 2

    141460
    
    • 1

    Hint

    数据规模及范围
    1 ≤ n ≤ 1 0 5 1≤n≤10^{5} 1n105

    H.等差数列

    Description

    小王同学最近沉迷于研究等差数列。
    所谓等差数列,是指从第二项起,每一项与它的前一项的差等于同一个常数的一种数列。
    某天,他学会了使用C语言的随机函数rand(),并用它生成了一个长度为 n n n的整数数列。但是,这并不是他喜欢的等差数列。
    他想通过一些简单的操作将它变成一个等差数列。他可以进行两种操作:
    (1)将某一个位置上的数字增加1。
    (2)将某一个位置上的数字减少1。
    小王同学的数学不是很好,请你帮他计算一下最少通过多少次上述操作,可以将原始数列变成一个等差数列。

    Input

    第一行输入一个整数 n n n,为数列的长度。
    第二行包含 n n n个以空格分隔的整数 a i a_{i} ai ,代表原始序列。

    Output

    输出一个整数,为小王同学对数列元素的最少操作次数。

    Sample Input 1

    5
    2 4 5 9 9
    
    • 1
    • 2

    Sample Output 1

    3
    
    • 1

    Hint

    数据规模及范围
    1 ≤ n ≤ 1 0 5 1≤n≤10^{5} 1n105
    0 ≤ ∣ a i ∣ ≤ 1 0 8 0≤|a_{i}|≤10^{8} 0ai108

  • 相关阅读:
    数据科学面试你应该知道的10个统计概念
    手把手教你定位线上MySQL慢查询问题,包教包会
    Docker安装RabbitMQ
    前端不使用 il8n,如何优雅的实现多语言?
    Vue3+Typescript+Vite实现网易云音乐年活动主导色
    [Linux](15)线程基础,线程控制,线程的互斥与同步
    4367. 拍照2
    keil5debug无法进行调试
    U-App移动统计算力升级!支持跨应用、多事件的打包计算
    现代化战机之路:美国空军U-2侦察机基于Jenkins和k8s的CI/CD架构演进
  • 原文地址:https://blog.csdn.net/qq_46640863/article/details/127584570