《2019年CSPJ普及组复赛题目.docx》由会员分享,可在线阅读,更多相关《2019年CSPJ普及组复赛题目.docx(7页珍藏版)》请在课桌文档上搜索。
1、1 .【2019CSPJ普及组】数字游戏时间限制:1000ms内存限制:262144KB【题目描述】小K同学向小P同学发送了一个长度为8的01字符串来玩数字游戏,小P同学想要知道字符串中究竟有多少个1。注意:01字符串为每一个字符是。或者1的字符串,如“101”(不含双引号)为一个长度为3的01字符串。【输入】只有一行,一个长度为8的01字符串s。【输出】只有一行,包含一个整数,即01字符串中字符1的个数。【输入样例】00010100【输出样例】2【提示】【输入输出样例1说明】该01字符串中有2个字符Io【输入样例211111111【输出样例2】8【数据规模与约定】对于20%的数据,保证输入的
2、字符全部为0。对于100%的数据,输入只可能包含字符0和字符】,字符串长度固定为8。2.【2019CSPJ普及组】公交换乘时间限制:1000ms内存限制:262144KB【题目描述】著名旅游城市B市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案:1.在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于45分钟,即:tbus-tsubway45tbus-tsubway452 .搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优
3、惠票搭乘公交车。3 .搭乘公交车时,如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?【输入】第一行包含一个正整数n,代表乘车记录的数量。接下来的n行,每行包含3个整数,相邻两数之间以一个空格分隔C第i行的第1个整数代表第i条记录乘坐的交通工具,O代表地铁,1代表公交车;第2个整数代表第i条记录乘车的票价pricei;第三个整数代表第i条记录开始乘车的时间ti(距O时刻的分钟数)。我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现在同一分钟。【输出】只有一行,包含一个正
4、整数,代表小轩出行的总花费【输入样例】6O10315460125013960511016135【输出样例】36【提示】【输入输出样例1说明】第一条记录,在第3分钟花费10元乘坐地铁。第二条记录,在第46分钟乘坐公交车,可以使用第一条记录中乘坐地铁获得的优惠票,因此没有花费。第5页共10页第三条记录,在第50分种花费12元乘坐地铁。第四条记录,在第96分钟乘坐公交车,由于距离第三条记录中乘坐地铁已超过45分钟,所以优惠票已失效,花费3元乘坐公交车。第五条记录,在第UO分钟花费5元乘坐地铁。第六条记录,在第135分钟乘坐公交车,由于此时手中只有第五条记录中乘坐地铁获得的优惠票有效,而本次公交车的票
5、价为6元,高于第五条记录中地铁的票价5元,所以不能使用优惠票,花费6元乘坐公交车。总共花费36元。【输入样例260510201607231183114381768【输出样例2】32【输入输出样例2说明】第一条记录,在第1分钟花费5元乘坐地铁。第二条记录,在第16分钟花费20元乘坐地铁。第三条记录,在第23分钟花费7元乘坐地铁。第四条记录,在第31分钟乘坐公交车,此时只有第二条记录中乘坐的地铁票价高于本次公交车票价,所以使用第二条记录中乘坐地铁获得的优惠票。第五条记录,在第38分钟乘坐公交车,此时第一条和第三条记录中乘坐地铁获得的优惠票都可以使用,使用获得最早的优惠票,即第一条记录中乘坐地铁获得
6、的优惠票。第六条记录,在第68分钟乘坐公交车,使用第三条记录中乘坐地铁获得的优惠票。总共花费32元。【数据规模与约定】对于30%的数据,n1000,ti106o另有15%的数据,ti10人7,PriCei都相等。另有15%的数据,住10八9,PriCei都相等。对于100%的数据,n105,ti109,lpricei1000o3.【2019CSPJ普及组】纪念品时间限制:1000ms内存限制:262144KB【题目描述】小伟突然获得一种超能力,他知道未来T天N种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交
7、易无限次:1 .任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;2 .卖出持有的任意一个纪念品,以当日价格换回金币。每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。T天之后,小伟的超能力消失。因此他一定会在第T天卖出所有纪念品换回金币。小伟现在有M枚金币,他想要在超能力消失后拥有尽可能多的金币。【输入】第一行包含三个正整数TNM,相邻两数之间以一个空格分开,分别代表未来天数T,纪念品数量N,小伟现在拥有的金币数量M。接下来T行,每行包含N个正整数,相邻两数之间以一个空格分隔。第i行的N个正整数分别为PiPi2Pi
8、NPiIPi2PiN1其中PJij)表示第i天第j种纪念品的价格。【输出】输出仅一行,包含一个正整数,表示小伟在超能力消失后最多能拥有的金币数量。【输入样例】61100502025202550【输出样例】305【提示】【输入输出样例1说明】最佳策略是:第二天花光所有100枚金币买入5个纪念品1;第三天卖出5个纪念品1,获得金币125枚;第四天买入6个纪念品1,剩余5枚金币;第六天必须卖出所有纪念品换回300枚金币,第四天剩余5枚金币共305枚金币。超能力消失后,小伟最多拥有305枚金币。【输入输出样例2】33100102015151713152516【输入输出样例2】217【输入输出样例2说明
9、】最佳策略是:第一天花光所有金币买入10个纪念品1;第二天卖出全部纪念品1得到150枚金币并买入8个纪念品2和1个纪念品3,剩余1枚金币;第三天必须卖出所有纪念品换回216枚金币,第二天剩余1枚金币,共217枚金币。超能力消失后,小伟最多拥有217枚金币。【数据规模与约定】对于10%的数据,T=Io对于30%的数据,T4N4M100,所有价格IOWPijqO0。另有15%的数据,T100N=lo另有15%的数据,T=2N100o对于100%的数据,T100N1)阶段的零件,则所有与X号工人有传送带直接相连的工人,都需要生产一个被加工到第LT阶段的零件(但X号工人自己无需生产第LT阶段的零件)。
10、如果X号工人想生产一个被加工到第1阶段的零件,则所有与X号工人有传送带直接相连的工人,都需要为X号工人提供一个原材料。轩轩是1号工人。现在给出q张工单,第i张工单表示编号为ai的工人想生产一个第Li阶段的零件。轩轩想知道对于每张工单,他是否需要给别人提供原材料。他知道聪明的你一定可以帮他计算出来!【输入】第一行两个正整数nm和q,分别表示工人的数目、传送带的数目和工单的数目。接下来m行,每行两个正整数U和V,表示编号为U和V的工人之间存在一条零件传输带。保证uvo接下来q行,每行两个正整数a和L,表示编号为a的工人想生产一个第L阶段的零件。【输出】共q行,每行一个字符串“Yes”或者“No”。
11、如果按照第i张工单生产,需要编号为1的轩轩提供原材料,则在第ii行输出“Yes”;否则在第i行输出“No”。注意输出不含引号。【输入样例】3261 2232 13 14 1122232【输出样例】NoYesNoYesNoYes【提示】【输入输出样例1说明】需要编号为2的工人提供原材料。需要编号为1和3的工人提供原材料。需要编号为2的工人提供原材料。需要编号为2的工人生产第1阶段的零件,需要编需要编号为1和3的工人生产第1阶段的零件,他/需要编号为2的工人生产第1阶段的零件,需要编编号为1的工人想生产第1阶段的零件,编号为2的工人想生产第1阶段的零件,编号为3的工人想生产第1阶段的零件,编号为1
12、的工人想生产第2阶段的零件,号为1和3的工人提供原材料。编号为2的工人想生产第2阶段的零件,她们都需要编号为2的工人提供原材料。编号为3的工人想生产第2阶段的零件,号为1和3的工人提供原材料。【输入样例255512233445151112131415【输出样例2】NoYesNoYesYes【输入输出样例2说明】编号为1的工人想生产第1阶段的零件,需要编号为2和5的工人提供原材料。编号为1的工人想生产第2阶段的零件,需要编号为2和5的工人生产第I阶段的零件,需要编号为134的工人提供原材料。编号为1的工人想生产第3阶段的零件,需要编号为2和5的工人生产第2阶段的零件,需要编号为134的工人生产第
13、1阶段的零件,需要编号为2345的工人提供原材料。编号为1的工人想生产第4阶段的零件,需要编号为2和5的工人生产第3阶段的零件,需要编号为134的工人生产第2阶段的零件,需要编号为2345的工人生产第1阶段的零件,需要全部工人提供原材料。编号为1的工人想生产第5阶段的零件,需要编号为2和5的工人生产第4阶段的零件,需要编号为134的工人生产第3阶段的零件,需要编号为2345的工人生产第2阶段的零件,需要全部工人生产第I阶段的零件,需要全部工人提供原材料。【数据规模与约定】共20个测试点。luvano测试点14,lnm1000,q=3,L=I0测试点58,lnm1000,q=3,lL10o测试点912,lnmL1000,lq100o测试点13-16,lnmL100O1lq105o测试点1720,lnmq1051lL109o