試題程序及解題報告mn07f1_第1頁
試題程序及解題報告mn07f1_第2頁
試題程序及解題報告mn07f1_第3頁
試題程序及解題報告mn07f1_第4頁
試題程序及解題報告mn07f1_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

親和數(shù)某一天,tenshi看了一本趣味數(shù)學(xué)書,上面提到了親和數(shù):定義數(shù)對(x,y)為親和數(shù)對當(dāng)且僅當(dāng)x、y為不同正整數(shù),且x、y各自的所有非自身正因子之和等于另一個數(shù)。例如(220,284)和(280,224)都是親和數(shù)對,因為:220的所有非自身正因子之和為:1+2+4+5+10+11+20+22+44+55+110=284284的所有非自身正因子之和為:1+2+4+71+142=220數(shù)對(x,y)跟(y,x)被認為是同一數(shù)對,所以我們只考慮x<y的情況。親和數(shù)任務(wù):

tenshi對某個范圍內(nèi)的親和數(shù)對的數(shù)量非常感興趣,所以希望你能幫她編寫一個程序計算給定范圍內(nèi)的親和數(shù)對的數(shù)量。給定一個范圍A到B,如果A≤x≤B,則我們稱(x,y)在范圍[A,B]內(nèi)。

1≤A≤B≤10^8且B-A≤10^5

輸入:

amicable.in

2001200輸出:

amicable.out

2注:[200,1200]內(nèi)的數(shù)對只有兩個,分別是(220,284)和(11841210)窮舉法利用窮舉法求因子算法:init;main;print;procedureinit;beginassign(f,'amicable.in');reset(f);readln(f,a,b);close(f);end;procedureprint;beginassign(f,'amicable.out');rewrite(f);writeln(f,s);close(f);end;proceduremain;vari,k:longint;begins:=0;fori:=atobdobegink:=js(i);ifk>ithenifjs(k)=ithens:=s+1;end;end;functionjs(x:longint):longint;vart,i:longint;begint:=1;fori:=2totrunc(sqrt(x))doifxmodi=0thent:=t+i+(xdivi);js:=tend;amicable.in0=10.0(0.35s)amicable.in1=10.0(0.02s)amicable.in2=10.0(0.06s)amicable.in3=10.0(0.01s)amicable.in4=10.0(0.34s)amicable.in5=10.0(0.05s)amicable.in6=10.0(1.05s)amicable.in7=10.0(0.14s)amicable.in8=10.0(1.85s)amicable.in9=10.0(1.58s)表達式的轉(zhuǎn)換平常我們書寫的表達式稱為中綴表達式,因為它將運算符放在兩個操作數(shù)中間,許多情況下為了確定運算順序,括號是不可少的,而后綴表達式就不必用括號了。后綴標(biāo)記法:書寫表達式時采用運算符緊跟在兩個操作數(shù)之后,從而實現(xiàn)了無括號處理和優(yōu)先級處理,使計算機的處理規(guī)則簡化為:從左到右順序完成計算,并用結(jié)果取而代之。例如:8–(3+2*6)/5+4可以寫為:8326*+5/–4+其計算步驟為:8326*+5/–4+8312+5/–4+8155/–4+83–4+54+9expstr

:8–(3+2*6)/5+4newexp:8326*+5/–4+expstr

:8–(3+2*6)/5+4newexp:8326*+5/–4+8–(3+2*)6*+/5+/+–4varf:text;expstr,{中綴表達式}newexp:string;{后綴表達式}s:array[1..255]ofchar;{堆棧}opcode:array[1..255]of0..3;sp,len:integer;{堆棧指針,串長}ch:char;init;main;print;procedureinit;beginassign(f,'express.in');reset(f);readln(f,expstr);close(f);sp:=0;len:=length(expstr);end;beginfori:=1tolendobeginch:=expstr[i];casechof'0'..'9':newexp:=newexp+ch;'+','-','*','/','^':oprate;'(':opleft;')':opright;end;end;whilesp>0dobeginnewexp:=newexp+s[sp];dec(sp);end;end;mainprocedureoprate;varfg:integer;bl:boolean;begincasechof'+','-':fg:=1;'*','/':fg:=2;'^':fg:=3;end;bl:=false;repeatif(sp=0)or((sp>0)and(opcode[sp]<fg))thenbeginpush(ch);opcode[sp]:=fg;bl:=true;endelsebeginwhile(sp>0)and(opcode[sp]>=fg)dobeginnewexp:=newexp+s[sp];sp:=sp-1;end;end;untilbl;end;procedureopleft;beginpush(ch);opcode[sp]:=0;end;procedureopright;beginifsp<>0thenwhiles[sp]<>'('dobeginnewexp:=newexp+s[sp];sp:=sp-1;end;dec(sp);end;背誦單詞小小在背單詞,她發(fā)現(xiàn)當(dāng)背誦了單詞beauty以后,再接著背誦單詞beautiful就會覺得容易許多。由于有很多單詞要背,她希望找到一種好的背誦順序。單詞A和它的前驅(qū)B的最大公共前綴的長度稱為背誦單詞A的便利值(例如:B='beauty',A='beautiful',則A的便利值是len({A,B})=len('beaut')=5),我們認為一個背誦單詞A的花費是它的長度(例如:'beautiful'的長度len(‘beautiful')=9)與它的便利值之差(對于上述例子背誦A的花費為9-5=4)。請你求一個背誦順序,使得背誦這些單詞的花費總和最小。假設(shè)一開始你什么單詞都不記得。輸入:

LETTER.IN

5

beauty

beautiful

flower

man

dog輸出:

LETTER.OUT

beauty

beautiful

dog

flower

man狀態(tài):f(i,j)表示第i到j(luò)個字符的最優(yōu)值邊界狀態(tài):f(i,i)=len(data[i])1<=i<=ndata[i]表示第i個字符串a(chǎn)ns=f(1,n)狀態(tài)轉(zhuǎn)移方程f(i,j)=maxLen(data[i])-g[i,i+1]+f(i+1,j)Len(data[i])-g[s[i+1,i+1,1],1]-g[i,s[i+1,j,1]]

+f(i+1,i+1)+f(i+2,j)g[i,j]表示第i個單詞與第j個單詞的便利值Len(data[i])-g[s[i+1,i+2,2],i]-g[i,s[i+2,j,1]]

+f(i+1,i+2)+f(i+3,j)Len(data[i])-g[s[i+1,j-1,j-i-1],i]-g[i,s[j,j,1]]

+f(i+1,j-1)+f(j,j)…………s[i,j,k]表示第i個單詞與第j個單詞的最優(yōu)便利值序列的第k個單詞號Len(data[i])-g[i,j]+f(i+1,j-1)盟軍敢死隊

倉庫是一個m*n的矩形區(qū)域,每一格用一個字符來描述:“

.”

代表空地;“#”

代表墻或障礙物;“^”,“v”(小寫),“<”,“>”

四個字符分別表示正向NSWE四個方向看的敵人。敵人總是保持固定不動并朝著一個方向看,從這個方向一直延伸直到邊界或障礙物的區(qū)域是他的視線范圍,如果一個敵人沒有在任何人的視線范圍之內(nèi),敢死隊員就可以消滅他。你不能消滅一個正在另一個活著的敵人視線范圍內(nèi)的敵人,否則你就會被發(fā)現(xiàn),后果不堪設(shè)想。一個敵人不會成為遮擋視線的障礙物。輸入數(shù)據(jù)的第一行是用空格分開的兩個整數(shù)n,m,分別表示倉庫的長和寬。接下來有n行,每行m個字符,是倉庫的描述。cmdo.in

22

>^

#^

cmdo.out

2cmdo.in

13

>.<

cmdo.out

Impossible對每一個敵人賦予一個編號1~n(n表示敵人數(shù))對于表示一個消滅所有敵人的順序的序列Q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論