




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、WORD格式-專業學習資料-可編輯IntegerFactorizationDescription問題描述:大于1的正整數n可以分解為:n=Xl*X2*-*Xmo例如,當n=12時,共有8種不同的分解式:12=12:12=6*2;12=4*3:12=3*4;12=3*2*2;12=2*6;12=2*3*2;12=2*2*3o編程任務:對于給定的正整數n,編程計算n共有多少種不同的分解式。Input輸入由多組測試數據組成。每組測試數據輸入第一行有1個正整數n(ln2000000000)oOutput對應每組輸入,輸出計算出的不同的分解式數。SampleInput12SampleOutput8程序如
2、下:#include<stdio.h>#include<math.h>structDPintnum;intsum;d50000=0;intmax=0;voidqsort(intlow,inthigh,structDPkey)inti=low,j=high;structDPtag=keyi;if(i<j)(do(while(tag.num<keyj.num&&ij)j一一;學習資料分享if(i<j)(keyi=keyj;i+;while(tag.num>=keyi.num&&i<j)i+;if(i<j)(
3、keyj=keyi;J;)while(i<j);keyi=tag;qsort(low,j-l,key);qsort(i+1,high,key);)intdfs(intleft)inti,p;int1,r,m;intcount=0;1=0;r=max;while(l<=r)m=(l+r)>>1;if(dmLnum<left)l=m+l;elser=m-l;)p=l;if(dp.sum)returndp.sum;for(i=l;i<=di.num;i+)if(left%di.num=0)count+=dfs(left/dEi.num);)dLpLsum=coun
4、t;returncount;)intmain(void)inti,j,tmp;intn;scanf&n);tmp=sqrt(n);for(i=l;i<=tmp;i+)if(n%i=0)dmax.num=i;max+;dmax.num=n/i;max+;max;qsort(0,max,d);d0.sum=l;printf(%dn,dfs(n);return0;)比賽安排Description設有2、(n<=6)個球隊進行單循環比賽,計劃在2、-1天內完成,每個隊每天進行一場比賽。設計一個比賽的安排,使在2X-1天內每個隊都與不同的對手比賽。例如2時的比賽安排:隊1234比賽1
5、=23=4一天匚32二4二天1=42=3三天Input輸入由多組測試數據組成。每組測試數據輸入一個正整數代表題目中的noOutput對應每組輸入,輸出如樣例所示。<1>1-2,3-4表示第一天1隊與2隊,3隊與4隊比賽SampleInput2SampleOutput3-4<2>l-3,2-4<3>l-4,2-3程序如下:#include<stdio.h>inta8080;voidcopy(intn)intm,i,j;m=n/2;for(i=l;i<=m;i+)for(j=l;j<=m;j+)(aij+m=aij+m;ai+mj=aij
6、+m;ai+mj+m=aij;)voidwz(intn)(if(n=l)al1=1;return;elsewz(n/2);copy(n);)intmain()(intn,i,j,m,f,k;while(scanf&n)!=EOF)k=l;for(i=0;i<n;i+)k*二2;wz(k);m=0;for(j=2;j<=k;j+)m+;f=l;for(i=l;i<=k;i+)(if(aij!=0)if(f)printf(z/<%d>%d-%d,z,m,i,aij);f=0;elseprintf(,%d-%d/z,i,aij);aaijj=0;)printf(
7、n);)又是Hanoi塔問JDescriptionA、B、C是3個塔座。開始時,在塔座A上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,,n,奇數號圓盤著藍色,偶數號圓盤著紅色,如圖所示。現要求將塔座A上的這一疊圓盤移到塔座B上,并仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則:規則(1):每次只能移動1個圓盤;規則(2):任何時刻都不允許將較大的圓盤壓在較小的圓盤之上;規則(3):任何時刻都不允許將同色圓盤疊在一起;規則(4):在滿足移動規則(1)-的前提下,可將圓盤移至A,B,C中任一塔座上。按照上述四種規則移動過程中,如將圓盤從A柱移到B柱,則稱B
8、柱使用一次。例如要將塔座A上2個圓盤,按上述四種規則移動到B柱,A柱使用0次,B柱使用2次,C柱使用1次。試設計一個算法,統計用最少的移動次數將塔座A上的n個圓盤移到塔座B上并仍按同樣順序疊置時,A柱、B柱、C柱的使用次數。編程任務:對于給定的正整數n,編程計算最優移動方案時,A柱、B柱、C柱的使用次數。Input輸入由多組測試數據組成。每組測試數據的第1行是給定的正整數n。Output對應每組輸入,輸出的每一行由三個相互空格的正整數組成,分別表示塔座A的使用次數、塔座B的使用次數及塔座C的使用次數。SampleInput2SampleOutput021程序如下:Sinclude<ios
9、tream>usingnamespacestd;classHanoiprivate:intnumA,numB,numC;public:Hanoi0;voidMoveHanoi(intnum,charA,charB,charC);voidCaluater(charchi,charch2);voidDisplay0;Hanoi::Hanoi0numA=0;numB=0;numC=0;voidHanoi::Caluater(charchi,charch2)if(ch2='A')numA+;elseif(ch2='B')numB+;elsenumC+;voidHa
10、noi::MoveHanoi(intnum,charA,charB,charC)if(num>0)MoveHanoi(num-l,A,C,B);Caluater(A,B);MoveHanoi(num-l,C,B,A);voidHanoi::Display()cout«numA«/z>z«numC«endl;intmainOintnn;while(cin>>nn)Hanoih;h.MoveHanoi(nn,'A','B','C');h.Display0;return0;Permutat
11、ionwithRepetitionDescriptionR=rl,r2,,rn是要進行排列的n個元素。其中元素rl,r2,,rn可能相同。試設計一個算法,列出R的所有不同排列。編程任務:給定n以及待排列的n個元素。計算出這n個元素的所有不同排列。Input輸入由多組測試數據組成。每組測試數據的第1行是元素個數n,1爛n爛500o接下來的1行是待排列的n個元素。Output對應每組輸入,將計算出的n個元素的所有不同排列輸出,每種排列單獨一行。最后1行中的數是排列總數。SampleInput4aaccSampleOutputaaccacacaccacaaccacaccaa6程序如下:#includ
12、e<stdio.h>#includealgorithmusingnamespacestd;intans;intok(charstr,inta,intb)if(b>a)for(inti=a;i<b;i+)if(stri=strb)return0;return1;voidperm(charstr,intk,intm)inti;if(k=m)ans+;for(i=0;i<=m;i+)printf(,z%cz,,stri);printfCn");)elsefor(i=k;i<=m;i+)if(ok(str,k,i)swap(strk,stri);perm(
13、str,k+1,m);swap(strk,stri);)intmain(intargc,char*argv)charstr1000;intn;while(scanf&n)!=EOF)ans=0;scanf(傳s”,str);perm(str,0,n-l);printf(“%dn,ans);)return0;ProblemC:整數劃分問題Description將正整數n表示成一系列正整數之和:n=nl+n2+nk,其中nl2n2enkL正整數n的這種表示稱為正整數n的劃分。求正整數n的不同劃分個數。例如正整數6有如下11種不同的劃分:6:5+1:4+2,4+1+1;3+3,3+2+1,3
14、+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;l+1+l+l+l+loInput輸入包含n+1行;第一行是一個整數n,表示有n個測試用例;第2至n+1每行一個正整數。Output對應每組輸入,輸出正整數n的不同劃分個數。SampleInput256SampleOutput711程序如下:#include<stdio.h>intsplit(intn,intm);intmainOintk,i;inta100;scanf&k);for(i=0;i<k;i+)scanf;)for(i=0;i<k;i+)printf(%dn”,split(ai,ai);)
15、intsplit(intn,intm)if(n<l)|(m<l)return0;if(n=l)|(m=l)return1;if(n<m)returnsplit(n,n);if(n=m)returnsplit(n,m-l)+l;returnsplit(n,m-l)+split(n-m,m);雙色Hanoi塔問,DescriptionA、B、C是3個塔座。開始時,在塔座A上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,,n,奇數號圓盤著藍色,偶數號圓盤著紅色,如圖所示。現要求將塔座A上的這一疊圓盤移到塔座B上,并仍按同樣順序疊置。在移動圓盤時
16、應遵守以下移動規則:規則(1):每次只能移動1個圓盤;規則:任何時刻都不允許將較大的圓盤壓在較小的圓盤之上;規則(3):任何時刻都不允許將同色圓盤疊在一起;規則(4):在滿足移動規則(1)-的前提下,可將圓盤移至A,B,C中任一塔座上。試設計一個算法,用最少的移動次數將塔座A上的n個圓盤移到塔座B上,并仍按同樣順序疊置。編程任務:對于給定的正整數n,編程計算最優移動方案。Input輸入由多組測試數據組成。每組測試數據的第1行是給定的正整數n。Output對應每組輸入,輸出的每一行由一個正整數k和2個字符cl和c2組成,表示將第k個圓盤從塔座cl移到塔座。2上。SampleInput3Sampl
17、eOutput1AB2AC1BC3AB1CA2CB1AB程序如下:Sinclude<stdio.h>intsplit(intn,intm);intmainOintk,i;inta100;scanf&k);for(i=0;i<k;i+)scanf('Rd",&ai);)for(i=0;i<k;i+)printf("%dn”,split(ai,ai);)intsplit(intn,intm)if(n<l)|(m<l)return0;if(n=l)|(m=l)return1;if(n<m)returnsplit(n
18、,n);if(n=m)returnsplit(n,m-l)+l;returnsplit(n,m-l)+split(n-m,m);再次hanoi塔問題Description古老的漢諾塔問題是:用最少的步數將N個半徑互不相等的圓盤從1號柱利用2號柱全部移動到3號柱,在移動的過程中小盤要始終在大盤的上面。現在再加上一個條件:不允許直接把盤從1號柱移動到3號柱,也不允許直接把盤從3號柱移動到1號柱。把盤按半徑從小到大用1N編號。每種狀態用N個整數表示,第i個整數表示i號盤所在的柱的編號。則N=2時的移動方案為(1,1)2(2,1)2(3,1)2(3,2).(2,2)2(1,2)2(1,3)2(2,3).(3,3)初始狀態為第。步,編程求在某步數時的狀態。Input輸入的第1行為整數T(1WTW50000),表示輸入數據的組數。接下來的丁行,每行有兩個整數N,M(1WNW19,OWMW移動N個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏發電系統故障診斷與維護技術光伏組件熱斑故障分析考核試卷
- 冷凍飲品生產環境中的空氣質量管理考核試卷
- 海鮮養殖面試題及答案
- 船舶輻射考試題及答案
- 防震減災面試題及答案
- 三一技師考試試題及答案
- 老房改造測試題及答案
- 湖南省長沙市岳麓實驗中學2024-2025學年高一下學期6月月考數學試卷
- 2025屆上海市風華中學高二化學第二學期期末學業質量監測試題含解析
- 數據分析基礎(第2版)課件 第4.2 描述性統計
- 柳州某醫院空氣源熱泵熱水系統設計案例
- 西師大版六年級數學下冊第四單元 扇形統計圖 單元概述和課時安排
- 高中英語全國高考考綱詞匯3600匯總
- 《中越傳統節日對比問題研究5100字【論文】》
- 特勞特戰略定位總裁課程課件
- 《 民航服務心理學》考試題及參考答案
- 公務員培訓包過班協議書范本
- 2021學堂在線網課《生活英語讀寫》課后作業單元考核答案
- 中國近現代史綱要超星爾雅答案貴州大學-
- Q∕GDW 12162-2021 隔離開關分合閘位置雙確認系統技術規范
- 燃氣入戶安檢培訓PPT.ppt
評論
0/150
提交評論