2021年市北区程序设计竞赛题(⼩学组)
最⼤值的相乘(maxx.cpp)
【问题描述】
第⼀⾏有x个正整数a1,a2,..,ax,
第⼆⾏有y个正整数b1,b2,...,by,
第三⾏有z个正整数c1,c2,...,cz,
假设第⼀⾏的x个正整数中的最⼤值为a、第⼆⾏的y个正整数中的最⼤值为b、第三⾏的z个正整数中
的最⼤值为c,
输出(a*b*c)%10007的结果。
【输⼊格式】:
第⼀⾏有x+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数x,后⾯的x个数表⽰
a1,a2,……ax。
第⼀⾏有y+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数y,后⾯的y个数表⽰
b1,b2,……by。
第⼀⾏有z+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数z,后⾯的z个数表⽰
c1,c2,……cz。
【输出格式】:
⼀个整数 是(a*b*c)%10007的值。
【样例输入】
3 2 1 3 4 5 3 2 1 2 1 2
【样例输出】
30
【数据规模和约定】
30%的数据:0<x,y,z<=1000, 0<a1,a2,...,ax,b1,b2,...,by,c1,c2,...,cz<=1e3;
80%的数据:0<x,y,z<=1000, 0<a1,a2,...,ax,b1,b2,...,by,c1,c2,...,cz<=1e6;
100%的数据:0<x,y,z<=1000, 0<a1,a2,…,ax,b1,b2,...,by,c1,c2,...,cz<=1e9。
(注意:1e3=10001e6=1000000 1e9=1000000000)
翻手算法(fanshou.cpp)
【问题描述】
⼩酷爱算法,他在编程珠玑⼀书中了解到了⼀种新的算法——翻⼿算法,为了更好的理解算 法,⼩明找来⼀叠纸牌,每⼀张纸牌上只有⼀个⼤写或⼩写的英⽂字母,他先把这叠纸牌进⾏洗牌操 作,假设洗牌后纸牌从第⼀张到最后⼀张的顺序是azxbcdy,然后按算法中介绍的那样,选择了⼀个翻⼿点 2。接着进⾏翻⼿操作: 第⼀次翻手,将前2张纸牌进⾏逆序排列,得到zaxbcdy; 第⼆次翻手,将剩下的5张纸牌进⾏逆序排列,得到zaydcbx; 第三次翻手,将现在的牌堆顺序进⾏逆序排列,得到xbcdyaz; 假设我们输入一行小写字母表示这叠纸牌的初始顺序,输入整数k作为翻手点,请你编写程序输出经 过三次翻手后的字符串。
【输入格式】
第一行:一行字符串,仅由大小写英文字母构成。 第二行:⼀个正整数k,表示翻手点。
【输出格式】
一行字符串,经过翻手算法后的字符串。
【样例输入】
azxbcdy 2
【样例输出】
xbcdyaz
【数据规模和约定】
30% 0<字符串⻓度<100
0<字符串长度<=1e5,0<k<=字符串长度
零花钱(money.cpp)
【问题描述】
商店里有一件玩具,今天你偶然得知:这件玩具在后⾯的n天里每天的定价(价格可能每天都会改 变),你买了这件玩具后可以以当天的价格卖给商店,所以你可以通过买卖这件玩具来赚取零花钱。如果只允许买卖一次,你怎样才能赚到最多的钱?数据保证肯定能赚到钱。
【输入描述】
第一行:⼀个正整数n,表示有n天。
第二行:a1,a2,...,an,表示这件玩具在将来n天里每天的价格,中间一个空格隔开。
【输出描述】
一个整数,最多能够赚多少零花钱。
【样例输入】
4 1 2 3 5
【样例输出】
4
【数据规模和约定】
50%的数据:0<n<=1000, 1<=a1<=a2<=...<=an<=1000;
100%的数据:0<n<=100000, 1<=a1,a2,…,an<=1000。
4.AC(ac.cpp)
【问题描述】
小明获得了一行字符串,他想知道在不改变字符顺序的情况下,从前到后最多能组合出多少个ac? (a和c的位置可以不连续)比如:字符串为addcadcc,可以找到5个ac,即下标组合为(0,3)、 (0,6)、(0,7)、(4,6)、(4,7)。
【输入格式】
仅一行字符串(只包含字母)。
【输出格式】
一个整数,字符串中找到ac的数量。
【输入样例】
addcadcc
【输出样例】
5
【数据规模和约定】
50%的数据:0<字符串长度<=1e3;
100%的数据:0<字符串长度<=1e6;
扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。