ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:20.29KB ,
资源ID:9220914      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9220914.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ACM试题及其答案1.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ACM试题及其答案1.docx

1、ACM试题及其答案1猪的安家Andy和Mary养了很多猪。他们想要给猪安家。但是Andy没有足够的猪圈,很多猪只能够在一个猪圈安家。举个例子,假如有16头猪,Andy建了3个猪圈,为了保证公平,剩下1头猪就没有地方安家了。Mary生气了,骂Andy没有脑子,并让他重新建立猪圈。这回Andy建造了5个猪圈,但是仍然有1头猪没有地方去,然后Andy又建造了7个猪圈,但是还有2头没有地方去。Andy都快疯了。你对这个事情感兴趣起来,你想通过Andy建造猪圈的过程,知道Andy家至少养了多少头猪。输入输入包含多组测试数据。每组数据第一行包含一个整数n (n = 10) Andy建立猪圈的次数,解下来n

2、行,每行两个整数ai, bi( bi = ai = 1000), 表示Andy建立了ai个猪圈,有bi头猪没有去处。你可以假定(ai, aj) = 1.输出输出包含一个正整数,即为Andy家至少养猪的数目。样例输入33 15 17 2样例输出16答案:/猪的安家.cpp:Definestheentrypointfortheconsoleapplication./#includestdafx.h#includeiostream.hvoidmain()intn;ints102;boolr10;charch;cout请输入次数:n;for(inti=0;in;i+)cout请输入第i+1次的猪圈个数

3、和剩下的猪:(用-分开)si0chchsi1;for(i=0;i10;i+)ri=true;for(intsum=1;sum+)for(i=0;in;i+)ri=(sum%si0=si1);for(i=0;in;i+)if(ri=0)break;if(i=n)break;cout猪至少有sum只。endl;蛇行矩阵Problem蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。Input本题有多组数据,每组数据由一个正整数N组成。(N不大于100)Output对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。Sa

4、mple Input5Sample Output1 3 6 10 152 5 9 144 8 137 1211答案:/SNAKE矩阵/#defineM100intmain()intaMM;intn;printf(请输入N的值:n);scanf(%d,&n);if(n=0)return0;printf(形成的蛇形矩阵为:n);a00=1;/因为每次第一个数必是1printf(%d,a00);for(inti=0;in-1;i+)ai+10=ai0+i+1;/提前算出下一行的第一个数据for(intj=0;jn-i-1;j+)aij+1=aij+j+i+2;/算出每一行的每个数据printf(%d

5、,aij+1);/打印每一行的数据printf(n%d,ai+10);/打印下一行的第一个数据printf(n);return0;平方数给出包含M个数字的列表,和列表中所有数字的所有质因数。求出最长的子列表,使得子列表中所有数字的乘积是一个完全平方数。输入输入文件包含多组测试数据。第一行包含两个整数N , M ( 1 = N = 30 , 1 = M = 30000 ). N 是质因数的个数。接下来一行有N个整数,给出所有的质因数。然后一行包含M个整数,给出列表。输入文件结束于N = M = 0.输出对于每组数据,输出最长子列表的两个位置坐标l r。l是该子列表在列表中的起始位置,r是结束位置

6、。如果多种情况都满足子列表长度最大,输出l最小的一个。如果不存在这样的子列表输出“None”。样例输入3 42 3 54 9 25 63 42 3 56 6 3 30 0样例输出1 31 4答案:#includeusingnamespacestd;#defineMAX_N30#defineMAX_M30000voidsquareNumber(int*A,int*B,intN,intM);voidmain()intAMAX_N;intBMAX_M;intN,M;cinNM;inti;while(N!=0|M!=0)for(i=0;iAi;for(i=0;iBi;squareNumber(A,B,

7、N,M);cinNM;voidsquareNumber(int*A,int*B,intN,intM)inti,j,k,t;boolflag;intnumMAX_N=0;inttemp=1;intlen_max=0;intr=0;intf=0;for(i=0;iM;i+)for(j=i+1+len_max;j=M;j+)for(k=0;kN;k+)numk=0;for(k=i;kj;k+)temp=Bk;while(temp!=1)flag=false;for(t=0;tN;t+)if(temp%At=0)temp/=At;numt+;flag=true;if(!flag)coutÊ

8、ý¾ÝÓÐÎendl;return;flag=true;for(k=0;kN;k+)if(numk%2=1)flag=false;break;if(flag)len_max=j-i;f=i+1;r=j;coutfrendl;死亡迷宫背景很久以前,迷宫里住着一个恶魔。一天,我们伟大的英雄Andy无意中踏入了这个迷宫。不幸的是,他被困在这个迷宫当中了。恶魔在迷宫中召唤出了许多怪物,想要阻止Andy逃脱。在迷宫中,Andy遇到一个一位巫师。他给了Andy迷宫的地图,并告诉他迷宫的入口很快会关闭。Andy必须以非常快的速度到达

9、入口,并且有足够的力气推开挡在入口的岩石。于是,Andy带着地图一路向着出口走去问题给出Andy和各怪物的能量, 攻击力, 防御力,和迷宫的地图,请你计算一下 能量/耗时 的最大值。当Andy走到有怪物的地方时,Andy会先进行攻击,然后怪物攻击,然后Andy当一方的能量小于等于0时攻击停止,并且小于等于0的一方死亡。攻击时,每次对方损耗的能量为己方的攻击力减去对方的防御力。当Andy走到标有A,B,C的地方时,Andy的相应属性会得到增加。对应关系如下:A 能量 + PB 攻击力 + QC 防御力 + R如果耗时超过100,那么门将永远也打不开了,我们的Andy也就永远的困在了这个暗无天日的

10、迷宫之中输入标准输入包含多组数据。每组数据的第一行有六个整数W (1 = W = 20), H (1 = H = 20), P (1 = P = 10), Q (1= Q = 10), R (1 = R = 10), M (0 = M = 5). 迷宫是由一个W*H的矩形区域构成。M表示怪物的数量。Andy每个单位时间可以移动到相邻的4个格中,当然,必须得保证目标格在矩形区域中。默认的起始时间是0。与怪物战斗不会花费额外的时间。其后H行每行严格包含W个字符。用如下的各字符表示这个迷宫的地图:#表示一堵墙(Andy是不会穿墙术的). Marks an empty space, into whic

11、h you can move.表示一块空地。S表示Andy的初始位置。E表示迷宫的入口。0表示各怪物。A表示属性增加地点。(使用次数仅限于一次)其后一行有三个整数,表示Andy的能量,攻击力,和防御力。其后M行,每行有四个整数,表示怪物的编号,和这个怪物的各属性。输出对于每组输入数据,输出 能量/耗时 的最大值,并保留4位小数。如果Andy不能到达出口,输出“impossible”。数据之间无空行。样例输入6 17 7 5 4 3#E.#.#A#.#.0.#.#B#1#2#.S.C#100 59 100 23 48 01 65 41 02 20 27 0样例输出3.7037 答案:#inclu

12、de#include#includeusingnamespacestd;#defineMAX_MAP_SIZE20#defineMAX_MON_SIZE5#defineTime100intW,H,P,Q,R,M;charmapMAX_MAP_SIZEMAX_MAP_SIZE;typedefstructAndyintp;intq;intr;*pAndy;typedefstructMonsterintid;intp;intq;intr;*pMonster;typedefstructNodeintx;inty;*pNode;Andyandy;MonstermonsMAX_MON_SIZE;chark

13、eywords4+MAX_MON_SIZE;intshortestPath(pNodepath,intlen_path,chardes,char*revs,intlen_rev,inttime);floatescape(char*revs,intlen_revs,inttime,Andyandy);boolgetPosition(charch,pNodep);voidmain()ifstreamin(data.in);inWHPQRM;inti;for(i=0;imapi;/coutmapiandy.pandy.qandy.r;for(i=0;imonsi.id;inmonsi.p;inmon

14、si.q;inmonsi.r;in.close();keywords0=E;keywords1=A;keywords2=B;keywords3=C;for(i=0;iM;i+)keywords4+i=0+i;/*NodepathMAX_MAP_SIZE*MAX_MAP_SIZE;path0.x=4;path0.y=2;intlen_path=1;chardes=E;charrevs10=.012ABCS;intlen_rev=8;inttime=100;coutshortestPath(path,len_path,des,revs,len_rev,time)endl;*/charrevs10=

15、.S;intlen_revs=2;inttime=100;coutescape(revs,len_revs,time,andy)endl;/*charrevs10=.S20E;intlen_revs=5;NodepathMAX_MAP_SIZE*MAX_MAP_SIZE;intlen_path=1;inttime=100;for(intj=1;j4;j+)getPosition(revsj,path);coutshortestPath(path,len_path,revsj+1,revs,j+1,time)xp-y=des)/ÕÒµ½&Au

16、ml;¿returnlen_path-1;if(time1)/ûÓÐʼä¼ÌÐøÑÕÒreturn-1;inti,j,k;for(i=0;ixp-y=revsi)Nodenodes4=p-x,p-y-1,p-x,p-y+1,p-x-1,p-y,p-x+1,p-y;intmin=W*H;inttemp;intbid=-1;boolflag;for(j=0;j4;j+)flag=true;for(k=0;k

17、0&tempmin)min=temp;bid=i;returnbid=-1?-1:min;return-1;boolgetPosition(charch,pNodep)for(inti=0;iW;i+)for(intj=0;jx=i;p-y=j;returntrue;returnfalse;floatescape(char*revs,intlen_revs,inttime,Andyandy)inti,j;inttempTime;floatmax=-1;floattemp;NodepathMAX_MAP_SIZE*MAX_MAP_SIZE;intlen_path=1;AndynewAndy;boolflag;for(i=0;i4+M;i+)flag=false;for(j=1;j0)if(keywordsi=E)/ÕÒµ½³ö¿Útemp=(float)andy.p/(Time-time+tempTime);/*couttempandy.ptime;for(intm=0;mlen_revs;m+)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1