已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1009可怜的毅毅【P1】时间限制(普通/Java):1000MS/10000MS 运行内存限制:65535KByte总提交:1219 测试通过:349描述 毅毅刚刚上小学三年级。有一天,老师给他出了一道十进制数的加法题目,11=几。结果毅毅做错了,老师很不高兴,罚毅毅回家做N道大整数的加法(最大有80位)。可怜的毅毅需要你的帮助输入本题有多组测试数据,每组测试数据有两行,分别表示两个非负整数。输出对每组测试数据输出一行,表示两数之和。样例输入11123456样例输出2579提示Leadingzerosshouldbeignored.+参考源码01.#include 02. 03.int reverse(char * str, int f); 04. 05.int main(void) 06. 07. char a100, b100, sum100; 08. int i, tmp, c100 = 0; 09. 10. while(scanf(%s %s, a, b) = 2) 11. 12. reverse(a, 1); 13. reverse(b, 1); 14. for(i = 0; i 100; i+) 15. ci = 0; 16. i = 0; 17. while(ai != /0 & bi != /0) 18. 19. tmp = ai - 0 + bi - 0 + ci; 20. if(tmp 10) 21. sumi = tmp + 0; 22. else 23. 24. sumi = tmp - 10 + 0; 25. ci + 1 = 1; 26. 27. i+; 28. 29. while(ai != /0) 30. 31. tmp = ai - 0 + ci; 32. if(tmp 10) 33. sumi = tmp + 0; 34. else 35. 36. sumi = tmp - 10 + 0; 37. ci + 1 = 1; 38. 39. i+; 40. 41. while(bi != /0) 42. 43. tmp = bi - 0 + ci; 44. if(tmp 10) 45. sumi = tmp + 0; 46. else 47. 48. sumi= tmp - 10 + 0; 49. ci + 1 = 1; 50. 51. i+; 52. 53. if(ci != /0) 54. 55. sumi = ci + 0; 56. i+; 57. 58. sumi = /0; 59. reverse(sum, 0); 60. printf(%s/n, sum); 61. 62. return 0; 63. 64. 65.int reverse(char * str, int f) 66. 67. int i, j, n; 68. char ch; 69. 70. if(f) 71. 72. n = 0; 73. while(strn != /0) 74. n+; 75. if(str0 = 0) 76. 77. i = 1; 78. while(stri = 0) 79. i+; 80. if(i = n) 81. str1 = /0; 82. else 83. 84. j = 0; 85. while(stri != /0) 86. strj+ = stri+; 87. strj = /0; 88. 89. 90. 91. i = 0; 92. while(stri != /0) 93. i+; 94. for(j = 0; j 1 but 0;xi=yj max cij-1,ci-1j I,j 0;xi=yj 在具体的算法设计中,以序列X= x1,x2,x3,xm 和Y= y1,y2,y3,ym作为输入。输出三个数组c,b,temp。其中cij存储Xi和Yj的公共子序列的长度,bij记录cij的值是由哪一个子问题的解得到的,这在构造最长公共子序列时要用到。问题得最优解,即X和Y得最长公共子序列记录在temph中。 二、源代码 下面是在Microsoft Visual C+ 6.0中编写的求最长公共子序列的源程序,程序定义了最大得字符串长度为99,是将p48页的动态规划算法改写而来的。 #include #include #define MAX 99 /typedef char MM; void main() int i,j,m,n,h=0; char xMAX= , ,yMAX= , ,bMAXMAX= ; int cMAXMAX=0; char tempMAX= ; cout *本程序可以求得字符数在99以内的任意两个字符串的最大公共子序列*n ; cout m; cout 请输入第一个字符串(“回车”结束)n如果输入的字符数超过m,则会出错!nx m = ; for(i=1;i xi; /键盘输入x和y cout n; cout 请输入第二个字符串ny n = ; for(i=1;i yi; for(i=1;i =m;i+)ci0=0; /动态规划开始 for(i=1;i =n;i+)c0i=0; for(i=1;i =m;i+) for(j=1;j =cij-1) cij=ci-1j; bij= ; elsecij=cij-1; bij= - ; /动态规划结束 cout cmn中的内容:n ; for(i=0;i =m;i+) for(j=0;j =n;j+) cout cij; cout endl; cout bmn中的内容:n ; for(i=1;i =m;i+) for(j=1;j =n;j+) cout bij; cout endl; i=m,j=n; while(1) if(i=0j=0) break; if(bij= ) temph+=xi; /反序记录最长公共子序列到temp中 i=i-1,j=j-1; else if(bij= ) i=i-1; else j=j-1; cout nx m 和y n =0;i-) /格式化输出最长公共子序列 if(i=h-1) if(h=1) cout LCS: tempi ; else cout LCS: tempi; else if(i=0) cout , tempi ; else cout , tempi; cout n endl; 1199怪的电梯 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:84 测试通过:22描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1=i=N)上有一个数字Ki(0=Ki=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。那么,从A楼到B楼至少要按几次按钮呢?输入共有二行,第一行为三个用空格隔开的正整数,表示N,A,B(1N200, 1A,BN),第二行为N个用空格隔开的正整数,表示Ki。输出仅一行,即最少按键次数,若无法到达,则输出-1。样例输入51533125样例输出3+奇怪的电梯【广度优先搜索】呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1=i=N)上有一个数字Ki (0=Ki=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失 灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。那么,从A楼到B楼至少要 按几次按钮呢?输入文件共有二行,第一行为三个用空格隔开的正整数,表示N,A,B(1N200, 1A,BN),第二行为N个用空格隔开的正整数,表示Ki。输出文件仅一行,即最少按键次数,若无法到达,则输出-1。input:5 1 53 3 1 2 5output:3广搜,只有注意上下的扩散,不用管开关的,要注意开始时就是当前层。代码:type node=recorddep,pr:longint;end;var n,i,j,x,y,head,tail,p:longint;list:array1.4000of node;a:array1.200of longint;b:array1.200of boolean;bo:boolean;beginwhile not eof do beginreadln(n,x,y);for i:=1 to n do read(ai);if (x=y) then begin writeln(0);halt;end;/ 开始时就是当前层fillchar(b,sizeof(b),true); bx:=true;list1.dep:=x; list1.pr:=0;head:=1; tail:=1;bo:=false;while head=tail do beginp:=listhead.dep+alisthead.dep;if (p=1)and bp thenbegininc(tail);listtail.dep:=p;listtail.pr:=listhead.pr+1;bp:=false;if p=y then begin bo:=true; break; end;end;inc(head);end;if bo then writeln(listtail.pr)else writeln(-1);end;end.链表:program problem1029;typeteamtype=teamnode;teamnode=recorddata:integer;deep:integer;next:teamtype;end;varvisited:array1.200 of boolean;k:array1.200 of integer;n,a,b:integer;procedure init;vari:integer;beginreadln(n,a,b);for i:=1 to n do read(ki);fillchar(visited,sizeof(visited),false);end;procedure bfs(root:integer);varhead,tail,temp:teamtype;i,x,y,deep:integer;beginnew(head);tail:=head;head.data:=root;head.deep:=0;head.next:=nil;while headnil dobeginx:=head.data;deep:=head.deep;temp:=head;head:=head.next;dispose(temp);visitedx:=true;if x=b thenbeginwriteln(deep);halt;end;for i:=1 to 2 dobegincase i of1:y:=x+kx;2:y:=x-kx;end;if (1=y) and (y=n) and (not visitedy) thenif head=nil thenbeginnew(head);tail:=head;head.data:=y;head.deep:=deep+1;head.next:=nil;endelsebeginnew(temp);temp.data:=y;temp.deep:=deep+1;temp.next:=nil;tail.next:=temp;tail:=temp;end;end;end;writeln(-1);end;beginwhile not eof do begininit;bfs(a);end;end. +1063Fibonacci 数列 【P17】时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:800 测试通过:207描述在Fibonacci 数列中,F0= 0,F1= 1, andFn=Fn 1+Fn 2forn 2. 比如, 前10个Fib数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, .现在给你一个整数n, 你需要计算出Fn. 的最后4位数字输入The input test file will contain multiple test cases. Each test case consists of a single line containing n (where 0 n 1,000,000,000). The end-of-file is denoted by a single line containing the number 1.输出For each test case, print the last four digits
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 普京和中国签署协议书
- 2025年RISC-VI2C接口设计考核试卷
- 播放连言协议书
- 宜宾比熊领养协议书
- 材料款回款协议书
- 2025年茶艺师语言表达与文化传播能力茶艺师操作技能考核试卷
- 2025年疫苗接种规范操作考试:冷链技术创新考核试卷
- 2025年共享经济行业共享经济模式与共享平台发展研究报告及未来发展趋势预测
- 2025年环保科技创新与产业转型研究报告及未来发展趋势预测
- 2025年半导体行业芯片技术与集成电路发展研究报告及未来发展趋势预测
- 餐厅供货合作合同范本
- 2025中铝招标有限公司面向集团内部公开招聘2人(北京)笔试历年参考题库附带答案详解
- 2025年退役军人事务厅直属事业单位招聘综合知识测评题库及答案
- 2025年护士考编高频考题必刷题库(100题)含答案
- 商贸公司质量管理流程手册
- 2025辽宁沈阳市铁西区面向社会招聘社区工作者73人笔试考试参考题库及答案解析
- 2025年度秋季安徽合肥热电集团招聘38人笔试历年参考题库附带答案详解
- 2025年全国高校辅导员素质能力大赛基础知识测试题及答案
- 2025年下半年扬州大数据集团公开招聘30人备考考试试题及答案解析
- 华为ICT大赛中国区(实践赛)-云赛道往年考试真题(附答案)
- 2025年河南省招聘警务辅助人员考试真题及答案
评论
0/150
提交评论