2020年csp-j入门级复赛真题.docx
《2020年csp-j入门级复赛真题.docx》由会员分享,可在线阅读,更多相关《2020年csp-j入门级复赛真题.docx(16页珍藏版)》请在优知文库上搜索。
1、2020年csp-j入门级复赛真题第一题:优秀的拆分(power)【题目描述】般来说,一个正整数可以拆分成若干个正整数的和。例如,I=It10=1+2+3+4等。对于正整数n的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n被分解为了若干个丕同的2的正整数次哥。注意,一个数X能被表示成2的正整数次耨,当且仅当X能通过正整数个2相乘在一起得到。例如,10=8+2=23+21是一个优秀的拆分。但是,7=4+2+1=2+21+20就不是一个优秀的拆分,因为1不是2的正整数次鼻。现在,给定正整数n,你需要判断这个数的所有拆分中,是否存在优秀的拆分。若存在,请你给出具体的拆分方案。【输入格式
2、】输入文件名为power.in.输入文件只有一行,一个正整数n,代表需要判断的数。【输出格式】输出文件名为power.out.如果这个数的所有拆分中,存在优秀的拆分。那么,你需要从大到小输出这个拆分中的每一个数,相邻两个数之间用一个空格隔开。可以证明,在规定了拆分数字的顺序后,该拆分方案是唯一的。若不存在优秀的拆分,输出(不包含双引号)。【样例1输入】6【样例1输出】42【样例1解释】6=4+2=22+21是一个优秀的拆分。注意,6=2+2+2不是一个优秀的拆分,因为拆分成的3个数不满足每个数互不相同。【样例2输入】7【样例2输出】-1【样例3见选手目录下的powerpower3.in与pow
3、erpower3.ans【数据范围与提示】对于20%的数据,n=10.对于另外20%的数据,保证n为奇数。对于另外20%的数据,保证n为2的正整数次募。对于80%的数据,n=1024.对于Io0%的数据,l=ll7.题目解析:一个数本来就可以拆分成2的正整数次鬲,因为利用它的二进制即可得到。例如:6的二进制是IlOt分别代表22,21,20所以6可以看成22+21=4+2。对n进行二进制分解,然后倒序输出即可。参考程序:#include#include#includeusingnamespacestd;intn;intmain()(cin;if(n%2=1)cout=1;i-)coutai,;
4、)returnO;)零一点评:本题难度显著高于2019,2018,2017年的第一题。没有联想到二进制转化的同学可能会被卡住。一旦联想到,就是一个【入门】级题目。骗分方法:第一个20%:对每个n,打表第二个20%:根据题意,不存在,直接输出-1第三个20%:它的拆分就是它本身,直接输出n本身【数据范围与提示】对于2096的数据,n=10.对于另外20%的数据,保证n为奇数。对于另外20%的数据,保证n为2的正整数次帚。对于80%的数据,n=1024.对于Ioo骊的数据,l=n=IXloA7.第二题直播获奖(IiVe)【题目描述】NoI2130即将举行。为了增加观赏性,CCF决定逐一评出每个选手
5、的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为w%,即当前排名前W的选手的最低成绩就是即时的分数线。更具体地,若当前已评出了P个选手的成绩,则当前计划获奖人数为max(1,p*w)1其中W是获奖百分比,冈表示对X向下取整max(xty)表示X和y中较大的数。如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多。作为评测组的技术人员,请你帮CCF写一个直播程序。【输入格式】输入文件名为live.in.第1行两个正整数n,W1分别代表选手总数与获奖率。第2行有n个非负整数,依次代表逐一评出的选手成绩。【输出格式】输出文件名为live.out.只有一行,包含n个非负整数
6、,依次代表选手成绩逐一评出后,即时的获奖分数线。相邻两个整数间用一个空格分隔。【样例1输入】10602003004005006006000300200100【样例1输出】200300400400400500400400300300【数据范围与提示】对于20%的数据,n=10对于另外20%的数据,保证n为奇数。对于另外20%的数据,保证n为2的正整数次帚。对于80%的数据,n=1024对于IO0%的数据,l=n=107【数据范围与提示】测试点编号n1-3=1046=5007-10=200011-17=1000018-20=100000对于所有测试点,每个选手的成绩均为不超过600的非负整数,获奖
7、百分比W是一个正整数目l=w=99.在计算计划获奖人数时,如用浮点类型的变量(如C/C+中的floatd。UbePaSCal中的real,double,extended)存储获奖比例w%,则计算5x60%时的结果可能为3.000001,也可能为2.999999,向下取整后的结果不确定。因此,建议仅使用整型变量,以计算出准确值。题目解析:50分程序:对于每个选手,把之前的数据进行Sort排序,选择max(LpXw%J)人处的分数。时间复杂度约为0(2)o100分程序:观察到数据范围里成绩在600以内,因此可以变sort排序为桶排序。准备600个桶,每个选手处,把他分数对应的桶里的个数+。然后从第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2020 csp 入门 复赛