ACM算法设计验题目汇总.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ACM算法设计验题目汇总

ACM算法设计实验题目汇总 1020 Permutation with Repetition 1 1021 双色Hanoi塔问题Search Number 4 1023 整数划分问题Counting 6 1025 输油管道问题Integer Factorization 9 1027 邮局选址问题矩阵连乘问题最长公共子序列MAX SUM 16 1034 Number Triangles 17 1035 编辑距离问题Pebble Merging 19 1037 租用游艇问题Minimal m Sums 22 1040 Knapsack Problem 24 1041 最优装载Lecture Halls 26 1043 程序存储问题Optimal Services 30 1049 汽车加油问题1059 子集树问题1060 0-1 Knapsack 33 1061 排列树问题1062 Problem D General Search 38 1020 Permutation with Repetition Description R={ r1,r2,… ,rn }是要进行排列的n 个元素。其中元素r1,r2,… ,rn可能相同。试设计一个算法,列出R的所有不同排列。 编程任务:给定n 以及待排列的n 个元素。计算出这n 个元素的所有不同排列。 Input 输入由多组测试数据组成。每组测试数据的第1 行是元素个数n,1 = n = 500。接下来的1 行是待排列的n 个元素。 Output 对应每组输入,将计算出的n 个元素的所有不同排列输出,每种排列单独一行。最后1 行中的数是排列总数。 Sample Input 4 aacc Sample Output aacc acac acca caac caca ccaa 6 #include stdio.h #include algorithm using namespace std ; int ans ; int ok(char str[],int a ,int b ) {if( b a) for(int i = a ; i b ; i++) if( str[i] == str[b] ) return 0 ; return 1 ;} void perm(char str[],int k ,int m) { int i ; if( k == m ) { ans ++ ; for( i = 0 ;i = m ;i++ ) {printf(%c,str[i] ) ; } printf(\n) ; } else { for( i = k ; i = m ;i++) if( ok(str,k,i) ) { swap ( str[k],str[i] ); perm(str, k+1 , m ); swap(str[k],str[i] ) ;} }} int main(int argc, char* argv[]) {char str[1000]; int n ; while( scanf(%d,n) != EOF ) {ans = 0 ; scanf(%s,str ) ; perm(str,0,n-1) ; printf(%d\n,ans );} return 0;} 1021 双色Hanoi塔问题Description A、B、C 是3个塔座。开始时,在塔座A 上有一叠共n 个圆盘,这些圆盘自下而上, 由大到小地叠在一起。各圆盘从小到大编号为1,2,……,n,奇数号圆盘着蓝色,偶数号圆盘着红色,如图所示。现要求将塔座A 上的这一叠圆盘移到塔座B 上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则: 规则(1):

文档评论(0)

aining + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档