青少年编程知识记录 codecoming

【题解】阶乘问题

2.阶乘问题(fac.cpp)

【题目描述】

给定一个正整数n,求出一个最小的整数m并使得m!的末尾连续的0的个数小于n。

m!=1*2*3*4*...*m

【输入描述】

第一行n。

【输出描述】

一个整数m。

【样例输入】

5

【样例输出】

25



【数据范围】

30%的数据:n<=20

70%的数据:n<=100

100%的数据:n<=100000

作者:亿万年的星光 分类:题解目录 浏览:

【题解】开关灯(2)

1.开关灯(light.cpp)

【题目描述】

某实验室共有n盏灯,灯的编号为1~n,每盏灯的初始状态是关闭的。现在有m位学生,每位学生可以前去抽取一张带数字的卡片,其数字为Ai,然后依次将自己手中的数字卡片倍数编号的灯进行操作,开的灯将会被关闭,关闭的灯则会被重新打开,这个过程进行k轮后有多少盏灯最终状态为打开。

【输入描述】

第一行是三个整数n,m,k。

第二行是m个整数A

【输出描述】

一个整数,为最终为打开状态的灯的数量。

【样例输入】

10 10 1  1 2 3 4 5 6 7 8 9 10



【样例输出】

3

标签: 数组

作者:亿万年的星光 分类:题解目录 浏览:

【题解】AC

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;

作者:亿万年的星光 分类:题解目录 浏览:

【题解】开关灯(1)

【题目描述】

假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。

第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。

请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。

【输入】

输入正整数N和M,以单个空格隔开。

【输出】

顺次输出关闭的灯的编号,其间用逗号间隔。

【输入样例】

10 10

【输出样例】

1,4,9
作者:亿万年的星光 分类:题解目录 浏览:

【题解】零花钱

零花钱(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。

作者:亿万年的星光 分类:题解目录 浏览:

【题解】翻手算法

翻手算法(fanshou.cpp) 

【问题描述】 

⼩酷爱算法,他在编程珠玑⼀书中了解到了⼀种新的算法——翻⼿算法,为了更好的理解算 法,⼩明找来⼀叠纸牌,每⼀张纸牌上只有⼀个⼤写或⼩写的英⽂字母,他先把这叠纸牌进⾏洗牌操 作,假设洗牌后纸牌从第⼀张到最后⼀张的顺序是azxbcdy,然后按算法中介绍的那样,选择了⼀个翻⼿点 2。接着进⾏翻⼿操作: 第⼀次翻⼿,将前2张纸牌进⾏逆序排列,得到zaxbcdy; 第⼆次翻⼿,将剩下的5张纸牌进⾏逆序排列,得到zaydcbx; 第三次翻⼿,将现在的牌堆顺序进⾏逆序排列,得到xbcdyaz; 假设我们输入一行小写字母表示这叠纸牌的初始顺序,输入整数k作为翻手点,请你编写程序输出经 过三次翻手后的字符串。 

【输入格式】

 第一行:一行字符串,仅由大小写英文字母构成。 第二行:⼀个正整数k,表示翻手点。 

【输出格式】

 一行字符串,经过翻手算法后的字符串。 

【样例输入】

azxbcdy  2

【样例输出】

xbcdyaz



【数据规模和约定】

30%  0<字符串⻓度<100

0<字符串长度<=1e5,0<k<=字符串长度

作者:亿万年的星光 分类:题解目录 浏览:

【题解】最小新整数

【问题描述】

第⼀⾏有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)

作者:亿万年的星光 分类:题解目录 浏览:

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<=字符串长度

作者:亿万年的星光 分类:题解目录 浏览:

【题解】放苹果(2)

【题目描述】把M个同样的苹果放在N个同样的盘子里,不允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。【输出】对输入的每组数据M和N,用一行输出相应的K。【输入样例】1 7 3【输出样例】4
作者:亿万年的星光 分类:题解目录 浏览:

【题解】区间数位个数

2.区间数位个数(digit.cpp)

【描述】

给定整数n整数k,求出1n中所有数的每一位数字中,出现数字k的次数。

【输入】

第一行是两个个整数nk

【输出】

一个整数表示答案

【样例输入输出】

light.in

light.out

123456 5

58993

 

 

【数据范围】

60%的数据:n<=1e6,1<=k<=9

80%的数据:n<=1e12,1<=k<=9

 

标签: 模拟

作者:亿万年的星光 分类:题解目录 浏览: