NOIP普及组初赛历年试题及答案完善题篇.pdf

NOIP普及组初赛历年试题及答案完善题篇.pdf

ID:20593888

大小:216.19 KB

页数:25页

时间:2018-10-14

NOIP普及组初赛历年试题及答案完善题篇.pdf_第1页
NOIP普及组初赛历年试题及答案完善题篇.pdf_第2页
NOIP普及组初赛历年试题及答案完善题篇.pdf_第3页
NOIP普及组初赛历年试题及答案完善题篇.pdf_第4页
NOIP普及组初赛历年试题及答案完善题篇.pdf_第5页
资源描述:

《NOIP普及组初赛历年试题及答案完善题篇.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NOIP普及组初赛历年试题及答案(完善题篇)完善程序,每年两题,每题每空2-4分,共28分。【解题步骤】1、仔细读题,尤其是题目给你的解题思路:解决什么问题?用的什么算法?输入输出是什么?……2、要知道变量的含义,也可通过变量单词的意思知道,比如sum表示和,que表示队列等等。3、在充分了解前两点的基础上,先根据自己的想法大致想想:如果让你实现程序,你会怎么做。4、通读程序,理顺程序结构,千万不要因为程序很长而觉得气馁,有时程序越长,填空越简单。5、按照程序执行的顺序做,遇到难的先放一边,继续往下做。有些空格很简单,一下就能看出来的。6、到这步为止,程序大概意图就知

2、道了,然后就是填比较难的几格了。这一点就靠你对程序的理解了。7、填完了以后,再执行一遍程序,有样例就结合样例,没样例就自己造数据模拟。【解题技巧】1、变量初始化:这个得结合后面的运算确定,不过有些也很简单,如sum=0之类的。2、for循环初、终值:如果是嵌套的循环,可结合父循环或子循环确定。3、更新最优解:比较或赋值。4、要填的空格与某句对应,这样的例子在下面能找到很多。NOIP2011-1.子矩阵给输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标:若不存在输出“Thereisnoanswer”。#i

3、ncludeusingnamespacestd;constintSIZE=50;intn1,m1,n2,m2,a[SIZE][SIZE],b[SIZE][SIZE];intmain(){inti,j,k1,k2;boolgood,haveAns;cin>>n1>>m1;for(i=1;i<=n1;i++)for(j=1;j<=m1;j++)cin>>a[i][j];cin>>n2>>m2;for(i=1;i<=n2;i++)for(j=1;j<=m2;j++)cin>>b[i][j];haveAns=false;for(i=1;i<=n1-n2+1

4、;i++)for(j=1;j<=m1-m2+1;j++){good=true;for(k1=1;k1<=n2;k1++)for(k2=1;k2<=m2;k2++){if(a[i+k1-1][j+k2-1]!=b[k1][k2])good=false;}if(good){cout<

5、ostream>#includeusingnamespacestd;constintSIZE=200;structhugeint{intlen,num[SIZE];};//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推hugeinttimes(hugeinta,hugeintb)//计算大整数a和b的乘积{inti,j;hugeintans;memset(ans.num,0,sizeof(ans.num));for(i=1;i<=a.len;i++)for(j=1;j<=b.len;j++)ans.num[i+j-1]

6、+=a.num[i]*b.num[j];for(i=1;i<=a.len+b.len;i++){ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;}if(ans.num[a.len+b.len]>0)ans.len=a.len+b.len;elseans.len=a.len+b.len-1;returnans;}hugeintadd(hugeinta,hugeintb)//计算大整数a和b的和{inti;hugeintans;memset(ans.num,0,sizeof(ans.num));if(a.len>b.len)ans.l

7、en=a.len;elseans.len=b.len;for(i=1;i<=ans.len;i++){ans.num[i]+=a.num[i]+b.num[i];ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;}if(ans.num[ans.len+1]>0)ans.len++;returnans;}hugeintaverage(hugeinta,hugeintb)//计算大整数a和b的平均数的整数部分{inti;hugeintans;ans=add(a,b);for(i=ans.len;i>=2;i--){an

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。