安徽省年度“達(dá)內(nèi)杯”程序設(shè)計(jì)大賽解題報(bào)告_第1頁(yè)
安徽省年度“達(dá)內(nèi)杯”程序設(shè)計(jì)大賽解題報(bào)告_第2頁(yè)
安徽省年度“達(dá)內(nèi)杯”程序設(shè)計(jì)大賽解題報(bào)告_第3頁(yè)
安徽省年度“達(dá)內(nèi)杯”程序設(shè)計(jì)大賽解題報(bào)告_第4頁(yè)
安徽省年度“達(dá)內(nèi)杯”程序設(shè)計(jì)大賽解題報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Evaluation Warning: The document was created with Spire.Doc for .NET. HYPERLINK 更多企業(yè)學(xué)學(xué)院: 中小企業(yè)業(yè)管理全全能版183套講講座+8897000份資料總經(jīng)理、高高層管理理49套講座座+1663888份資料中層管理理學(xué)院46套講座座+60020份份資料國(guó)學(xué)智慧慧、易經(jīng)經(jīng)46套講座座人力資源源學(xué)院56套講座座+2771233份資料各階段員員工培訓(xùn)訓(xùn)學(xué)院77套講座座+ 3324份份資料員工管理理企業(yè)學(xué)學(xué)院67套講座座+ 887200份資料工廠生產(chǎn)產(chǎn)管理學(xué)學(xué)院52套講座座+ 1139220份資料財(cái)務(wù)管理理學(xué)院53套講

2、座座+ 1179445份資料銷售經(jīng)理理學(xué)院56套講座座+ 1143550份資料銷售人員員培訓(xùn)學(xué)學(xué)院72套講座座+ 448799份資料安徽省20011“達(dá)達(dá)內(nèi)杯”程程序設(shè)計(jì)計(jì)大賽解解題報(bào)告告A-幸運(yùn)數(shù)數(shù)字此題只需題題目描述述解即可可,沒(méi)有有任何算算法和ttricck.#inclludee usingg naamesspacce sstd;int mmainn() iint n; wwhille (scaanf(%dd, &n) != EOOF) intt t = nn, ss = 0; whiile (t) s += t % 100; t /= 10; if (n % ss = 0) prrin

3、ttf(yessn); elsse pprinntf(noon); rretuurn 0;B-轉(zhuǎn)換二二叉樹(shù)首先根據(jù)據(jù)先序序序列和中中序序列列建立二二叉樹(shù),然然后按要要求先序序遍歷一一遍二叉叉樹(shù)即可可。當(dāng)然然,由于于建樹(shù)過(guò)過(guò)程實(shí)際際也是在在先序遍遍歷二叉叉樹(shù),所所以可以以不用實(shí)實(shí)際建樹(shù)樹(shù),只是是模擬那那個(gè)過(guò)程程,然后后再過(guò)程程中輸出出即可。建建樹(shù)過(guò)程程簡(jiǎn)單的的說(shuō)就是是以先序序序列定定根節(jié)點(diǎn)點(diǎn),以中中序序列列和和根根節(jié)點(diǎn)定定左右子子樹(shù)。#inclludee #inclludee usingg naamesspacce sstd;constt innt mmaxnn = 27;int NN;char

4、 PreeOrddermaxxn, InnOrddermaxxn;void DFSS(innt PPreSStarrt, intt PrreEnnd, intt InnStaart, innt IInEnnd) iint poss; ffor (poos = InnStaart; PrreOrrderrPrreSttartt != IInOrrderrpoos; poos+) iif (poss != InnStaart) priintff(); DFSS(PrreSttartt + 1, PreeStaart + ppos - IInSttartt, IInSttartt, ppos - 1

5、1); priintff(); pprinntf(%cc, PreeOrdderPreeStaart); iif (poss != InnEndd) priintff(); DFSS(PrreSttartt + poss - InSStarrt + 1, PrreEnnd, poss + 1, InEEnd); priintff(); int mmainn() iint i, lenn; sscannf(%d, &N); ggetccharr(); ffor (i = 00; ii N; i+) scaanf(%ss %ss, PreeOrdder, InnOrdder); lenn = st

6、rrlenn(PrreOrrderr); DFSS(0, leen - 1, 0, leen - 1); priintff(n); rretuurn 0;C-取石子子首先給出出必勝結(jié)結(jié)論,只只要n != 2xx,則先先手必勝勝。證明明:假設(shè)設(shè)n = 122,將它它轉(zhuǎn)換為為二進(jìn)制制則為11000。先手手第一次次取只需需把二進(jìn)進(jìn)制中從從低位數(shù)數(shù)起第一一個(gè)1取走即即可。在在這個(gè)例例子中,先先手留給給后手石石子數(shù)的的二進(jìn)制制為110000。這這樣后手手能取的的石子數(shù)數(shù)的二進(jìn)進(jìn)制范圍圍為000011-01000,無(wú)無(wú)論后手手怎么取取,它都都不可能能把所有有數(shù)字都都取完,而而且取了了之后剩剩下的石石子數(shù)的

7、的二進(jìn)制制后3位位肯定有有一個(gè)1。先先手只需需再次將將從低位位數(shù)起的的第一個(gè)個(gè)1取走即即可重復(fù)復(fù)上述過(guò)過(guò)程直至至游戲結(jié)結(jié)束。而而如果先先手第一一次面對(duì)對(duì)的石子子數(shù)是22x個(gè)個(gè),由于于他第一一次不能能把石子子都取完完,所以以他無(wú)論論如何取取都會(huì)把把上述必必勝狀態(tài)態(tài)留給對(duì)對(duì)手。同樣根據(jù)據(jù)上述證證明方法法可以證證明如果果先手必必勝,那那么他第第一次取取的最少少石子數(shù)數(shù)就是石石子數(shù)的的二進(jìn)制制中,從從低位數(shù)數(shù)起的第第一個(gè)1。#inclludee usingg naamesspacce sstd;int mmainn() iint n, t; wwhille (scaanf(%dd, &n) != EO

8、OF) t = 1; whiile (!(n & 1) n = 1; t = 1; if (n = 1) priintff(lloseen); elsse pprinntf(wiin %dnn, t); rretuurn 0;D-關(guān)鍵詞詞統(tǒng)計(jì)這題最佳佳解法是是先建立立單詞的的字典樹(shù)樹(shù),然后后再把文文章中的的單詞一一個(gè)一個(gè)個(gè)摳出來(lái)來(lái)進(jìn)行匹匹配,時(shí)時(shí)間復(fù)雜雜度是OO(m+n)。mm是文章章長(zhǎng)度,nn是單詞詞總長(zhǎng)度度。但是是省賽時(shí)時(shí)我們數(shù)數(shù)據(jù)放得得比較松松,只要要是把單單詞一個(gè)個(gè)一個(gè)摳摳出來(lái)比比較的都都能過(guò)。#inclludee usingg naamesspacce sstd;constt inn

9、t mmaxnn = 101162;constt innt mmaxmm = 20000055;strucct NNodee iint nexxt226; iint inddex; vvoidd innit() memmsett(neext, -11, ssizeeof(nexxt); inddex = -1; tirremmaxnn*5;char strrmaaxm, wwordd500;int ccunttmaaxn, nnxtmaxxn, szz, iidx;void inssertt(chhar *s) iint p = 0; wwhille (*s) intt v = *s - aa

10、; if (tiirep.nexxtvv = -1) tiirep.nexxtvv = +sz; tiiresz.innit(); p = tiirep.nexxtvv; s+; nnxtidxx = tiirep.inddex; ttireep.inndexx = idxx+;void finnd(ccharr *ss) iint p = 0; wwhille (*s) intt v = *s - aa; if (tiirep.nexxtvv = -1) reeturrn; p = tiirep.nexxtvv; s+; ffor (p = ttireep.inndexx; pp != -1

11、1; pp = nxttp) cunntpp+;bool lowwerccasee(coonstt chhar &c) rretuurn a = c & c = z;bool uppperccasee(coonstt chhar &c) rretuurn A = c & c = Z;int mmainn() iint n, i, t; ggetss(sttr); sscannf(%d%*c, &n); mmemsset(cunnt, 0, 4 * n); ttiree0.innit(); ffor (i = 00; ii n; i+) scaanf(%ss, worrd); inssertt(

12、woord); ffor (i = tt = 0; ; ii+) if (loowerrcasse(sstri) woordt+ = sttrii; elsse iif (uppperccasee(sttrii) woordt+ = sttrii + 322; elsse iif (t) woordt = 0; fiind(worrd); t = 00; if (!sstri) brreakk; ffor (i = 00; ii n; i+) priintff(%dnn, cunntii); rretuurn 0;E-搬書這題很多多人可能能想復(fù)雜雜了,比比賽中有有的隊(duì)是是用DPP過(guò)的。但但其實(shí)

13、只只要對(duì)體體積進(jìn)行行二分,然然后暴力力法測(cè)試試即可。二二分體積積時(shí)間復(fù)復(fù)雜度OO(loogd),測(cè)試試時(shí)間復(fù)復(fù)雜度OO(n+m)。所所以總的的時(shí)間復(fù)復(fù)雜度是是O(n+mm)loogd),其中中d是箱箱子體積積最大可可能值和和最小可可能值之之差,nn是書的的數(shù)量,mm是箱子子的數(shù)量量。#inclludee usingg naamesspacce sstd;constt innt mmaxnn = 10000;int vvmaaxn;int mmainn() iint n, m; iint maxxv, minnv; iint lefft, rigght, miid, cunnt, ptrr, l

14、leavve; wwhille (scaanf(%dd %dd, &n, &mm) != EEOF) maxxv = miinv = 00; forr (iint i = 0; i minnv) mminvv = vii; lefft = miinv, riightt = maxxv; whiile (leeft rrighht) miid = (lleftt + rigght) / 2; cuunt = 00; leeavee = 0; foor (ptrr = 0; ptrr n & ccuntt = vpptr) leaave -= vpptr; eelsee leaave = mmid

15、 - vvpttr; cunnt+; iff (ccuntt = m) rrighht = miid; ellse lleftt = midd + 1; priintff(%dnn, lefft); rretuurn 0;F-水晶球球假設(shè)少女女的相貌貌、智慧慧和財(cái)富富分別是是x、yy和z。首首先按xx從大到到小排序序處理掉掉一維,然然后建立立一個(gè)mmap,它它的keey值是是y,vvaluue值是是z。然然后從頭頭到尾掃掃描所有有少女。每每掃描一一個(gè)少女女時(shí),在在mapp里找其其y值的的上界,如如果它的的上界對(duì)對(duì)應(yīng)的zz要大于于少女的的z,則則說(shuō)明有有少女無(wú)無(wú)論x、yy還是zz都大于于她。否否

16、則將這這個(gè)少女女的y值值和z值值插入到到mapp里,并并且將mmap里里的無(wú)用用數(shù)據(jù)刪刪去,無(wú)無(wú)論是yy還是zz都比少少女小的的值。當(dāng)當(dāng)然這樣樣粗略的的講,還還有很多多問(wèn)題是是被忽略略過(guò)去的的,比如如說(shuō)邊界界問(wèn)題,兩兩個(gè)值相相同的問(wèn)問(wèn)題,如如何刪去去mapp中的無(wú)無(wú)用數(shù)據(jù)據(jù)等,這這個(gè)大家家可以參參考標(biāo)程程。#inclludee #inclludee #inclludee #inclludee usingg naamesspacce sstd;constt innt mmaxnn = 500005;constt innt iinf = 11000000000055;strucct DDataa

17、iint x, y, z; / 按按x從大大到小排排,如果果x相同同,則按按y從小小到大排排,如果果y也相相同,則則按z從從小到大大排 bbooll opperaatorr othh.x; if (y != othh.y) reeturrn yy othh.y; retturnn z ooth.z; dattammaxnn;int nn, aans;map v;typeddef mapp:iteerattor itrr;int mmainn() iint i; wwhille (scaanf(%dd, &n) != EOOF) forr (ii = 0; i n; i+) sccanff(%d

18、, &ddataai.x); forr (ii = 0; i n; i+) sccanff(%d, &ddataai.y); forr (ii = 0; i n; i+) sccanff(%d, &ddataai.z);v.cllearr(); sorrt(ddataa, ddataa + n); viinf = -innf; v-inff = innf; forr (ii = 0, anss = 0; i n; i+) ittr xx = v.uuppeer_bbounnd(ddataai.y); iff (ddataai.z ssecoond) aans+; ellse iif (!v.c

19、ouunt(dattaii.yy) | vvdaatai.y seeconnd = ddataai.z; ) v.eraase(x-); priintff(%dnn, anss); rretuurn 0;G-星際航航行這題是后后3題中中唯一有有隊(duì)伍過(guò)過(guò)的題,其其實(shí)不算算很難。只只要把圓圓的向量量和長(zhǎng)方方形的向向量合并并,然后后把題目目轉(zhuǎn)換成成圓在動(dòng)動(dòng),長(zhǎng)方方形靜止止或者長(zhǎng)長(zhǎng)方形在在動(dòng),圓圓靜止這這樣的模模型。然然后問(wèn)題題就蛻化化為圓與與線段(長(zhǎng)長(zhǎng)方形的的邊)相相撞的問(wèn)問(wèn)題。#inclludee #inclludee usingg naamesspacce sstd;#defiine epss

20、(11e-88)#defiine zerro(xx) (fabbs(xx)eeps)strucct ppoinnt ddoubble x, y; ppoinnt() ppoinnt(ddoubble a, douublee b) x=aa; yy=b; ppoinnt(ppoinnt pp1, poiint p2) x=pp2.xx-p11.x; y=p2.y-pp1.yy; ppoinnt ooperratoor +(poointt p) retturnn poointt( xx+p.x, y+pp.y); ;doublle xxmullt(ppoinnt pp1 ,poiint p2) r

21、retuurn p1.x*pp2.yy-p22.x*p1.y;doublle xxmullt(ppoinnt pp1 ,poiint p2, poointt p00) rretuurn (p11.x-p0.x)*(p22.y-p0.y)-(p22.x-p0.x)*(p11.y-p0.y);doublle ddmullt(ppoinnt pp1, poiint p2)retuurn p1.x*pp2.xx+p11.y*p2.y;doublle ddistt(poointt a, poointt b) rretuurn sqrrt(a.xx-b.x)*(a.x-bb.x)+(aa.y-b.yy)*

22、(a.yy-b.y);doublle ddispptollinee(poointt p, poointt l11, ppoinnt ll2) rretuurn fabbs( xmuult(p,ll1,ll2) ) / diist(l1,l2); bool croossllinee(poointt o, dooublle rr, ppoinnt vv, ppoinnt aa, ppoinnt bb) iif( zerro(vv.x) & zeero(v.yy) ) reeturrn ffalsse; ddoubble d = xmmultt( vv, ppoinnt(aa,b) ); iif(

23、d=epss ) douublee daa = xmuult( v, poointt(o,a) ); douublee dbb = xmuult( v, poointt(o,b) ); if( (dda=epss) (ddb=epss) ) reeturrn ttruee; poiint o1 = oo+v; if( diispttoliine(a, o, o1)-r =-epss ) retturnn trrue; if( diispttoliine(b, o, o1)-r -eeps ) rretuurn fallse; rretuurn dmuult(v, poiint(o,aa) =

24、epss;bool croossffulll(poointt a, poointt b, poointt c, poointt v, poointt o, dooublle rr, ppoinnt vvo) ppoinnt dd = a+ppoinnt(bb,c); ppoinnt vvs(vv,voo); rretuurn croossllinee(o, r, vss, aa, cc) | ccrosssliine(o, r, vs, b, d);int mmainn() ppoinnt aa, bb, cc, vv, oo, vvo; ddoubble r; wwhille(ccina.x

25、a.yybb.xb.yc.xxcc.yv.xv.yyoo.xo.yrvo.xvo.y) couut(crrosssfulll(aa,b,c,vv,o,r,vvo)?YEES:NOO)enndl; rretuurn 0;H-技術(shù)員員BanngFuu這題是狀狀態(tài)DPP,dpp狀態(tài)定定為dpp11001107。第第一維是是二進(jìn)制制標(biāo)記走走過(guò)哪些些節(jié)點(diǎn),第第二維是是最后到到達(dá)哪個(gè)個(gè)節(jié)點(diǎn),第第三維是是時(shí)間是是星期幾幾,而數(shù)數(shù)組本身身的值為為最少花花費(fèi)了多多少錢。最最后用SSpfaa遞推出出所有狀狀態(tài)即可可。#inclludee #inclludee #inclludee usingg naamesspa

26、cce sstd;constt innt NN = 15;constt innt DD = 7;constt innt IINF = 11000000000000;strucct EEdgee iint y, p, t;strucct NNodee iint s, x, d;int nn, mm;int ddp11NNNNDD, mk1NND;vectoor vvN;queuee q;void Iniit() iint i, j, k, x; EEdgee tmmp; ffor (i = 00; ii n; i+) vii.ccleaar(); ffor (i = 00; ii m; i+)

27、scaanf(%dd %dd %dd %dd, &x, &ttmp.y, &tmmp.pp, &tmpp.t); vxx.ppushh_baack(tmpp); ffor (i = 00; ii (1 n); i+) forr (jj = 0; j n; j+) foor (k = 0; k DD; kk+) ddpiijjkk = INNF, mkijk = 00; void Sollve() NNodee noow, nxtt; nnow.s = 1, noow.xx = 0, noww.d = 00; ddpnnow.snoww.xnoow.dd = 0; mmknnow.xnoww.xnoow.dd = 1; qq.puush(noww); wwhille (!q.emppty() no

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論