- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2017. 07. 28 试题分析 * NOIP2016普及组复赛题解 NOIP2016普及组C++ - * - 第1题 “买铅笔”简述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。? 商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小朋 友们发礼物。? 现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔最少需要花费多少钱? 【分析】送分题,数据量少,直接模拟即可。 当然,“小心撑得万年船”,“大意失荆州” - * - 例程 C++ #includeiostream using namespace std; int main() { long n,i,s,mins=100000000; //n铅笔数量,i循环变量,s费用,mins最小费用 long c[4],p[4];//三种铅笔的数量和价格 cinn; for (i=1;i4;i++) { cinc[i]p[i]; if(n%c[i]==0) s=n/c[i]*p[i];//正好整包 else s=(n/c[i]+1)*p[i];//有多余,再来一包 if(minss) mins=s;//判断那种买法最省钱 } coutmins; return 0; } - * - 第2题 “回文日期”简述 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。? 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。? 一个8位数字是回文的,当且仅当从左向右读和从右向左是相同的? 例如:? 2016年11月19日,表示它不是回文的? 2010年1月2日,表示它是回文的。 求:在他指定的两个日期之间包含这两个日期本身),有多少个真实存在的日期是回文的。 - * - 确定解题思路 一年是365天,如果闰年是366天。月日构成的数字最多只有366个。 第一步:构造出所有的日期(后四位) 第二步:利用回文的规则,构造出相应的年份 第三步:判断这个年份和日期在不在区间内 例如:8月15日,日期写成0815 对应回文的年份是:5180年 判一天在不在(指定的起始日期)到(指定的终止日期)之间 程序时间复杂度为O(366) - * - 主程序 #includeiostream using namespace std; int main() { long i,j,y,m,d,t,date1,date2,sum=0; //i,j循环变量,y对应日期,m月倒置的数值,d日倒置的数值 long ms[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; cindate1date2;//输入起始结束日期 for (i=1;i=12;i++) { m=i%10*10+i/10;//1-12月份倒置之后的值 t=ms[i]; for (j=1;j=t;j++) - * - 主程序 d=j%10*10+j/10;//1-t日倒置之后的值 y=(d*100+m)*10000+i*100+j;//对应回文的日期 if(y=date1y=date2) sum++;//判断这个日期在不在查询范围内 } } coutsumendl; return 0; } - * - 确定解题思路(解法2) 如果从日期入手,一天一天往上加,每一天都要判断是不是合法的日期,是不是回文。容易出错,遇到极限数据还会超时 题目里还有更重要的一点是“回文” 位数是确定的,八位,很容易“组合” 例如:2014,可以组成我们只要判不是合法的日期就可以了 就算年份的范围是 1000~9999,也只要计算9000次就可以了 - * - 程序框架 输入数据 for i=day_start div 10000 // 取年份 =day_end div 10000 //循环起始到结束年份 if (check(i)) // 判断i年对应的日期是否符合要求 特别注意:还要判断这个日期是否在范围内 - * - 第3题 “海港”简述 小K按照时间记录下了到达海港的每一艘船只情
您可能关注的文档
- 2018中国类风湿关节炎诊疗指南.PPT
- 2018中国成人ICU镇痛和镇静治疗指南解读.PPT
- 2018年中药饮片调剂规范及工作流程.PPT
- 2018年第三季度卫生计生监督协管培训.PPT
- 2018心肾综合征治疗进展.PPT
- 2018企业职业健康培训.PPT
- 2018抗菌药物临床应用指南培训.PPT
- 2018年EBCC乳腺癌内分泌治疗进展.PPT
- 2018版思想道德修养与法律基础第3章弘扬中国精神.PPT
- 2018胆囊切除术后常见并发症的诊断与治疗专家共识.PPT
- 2024-2025学年度公安消防队考前冲刺练习及答案详解【夺冠】.docx
- 2024年公安消防队考前冲刺练习附完整答案详解(精选题).docx
- 2024公安消防队高频难、易错点题附参考答案详解(基础题).docx
- 2024-2025学年度高考试卷含完整答案详解【全国通用】.docx
- 2024-2025学年度高考模拟试题附参考答案详解【满分必刷】.docx
- 2024公安消防队预测复习及答案详解(名校卷).docx
- 2024-2025学年高考经典例题及答案详解(最新).docx
- 2024公安消防队真题附答案详解【综合卷】.docx
- 2024-2025学年公安消防队高频难、易错点题完整答案详解.docx
- 2024-2025学年度高考复习提分资料含完整答案详解【名师系列】.docx
文档评论(0)