安徽省年度“达内杯”程序设计大赛解题报告4529.docx
《安徽省年度“达内杯”程序设计大赛解题报告4529.docx》由会员分享,可在线阅读,更多相关《安徽省年度“达内杯”程序设计大赛解题报告4529.docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Evaluation Warning: The document was created with Spire.Doc for .NET.n更多企业学学院: 中小企业业管理全全能版183套讲讲座+8897000份资料总经理、高高层管理理49套讲座座+1663888份资料中层管理理学院46套讲座座+60020份份资料国学智慧慧、易经经46套讲座座人力资源源学院56套讲座座+2771233份资料各阶段员员工培训训学院77套讲座座+ 3324份份资料员工管理理企业学学院67套讲座座+ 887200份资料工厂生产产管理学学院52套讲座座+ 1139220份资料财务管理理学院53套讲座座+ 117944
2、5份资料销售经理理学院56套讲座座+ 1143550份资料销售人员员培训学学院72套讲座座+ 448799份资料安徽省20011“达达内杯”程程序设计计大赛解解题报告告A-幸运数数字此题只需题题目描述述解即可可,没有有任何算算法和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) prrinttf(yessn)
3、; elsse pprinntf(noon); rretuurn 0;B-转换二二叉树首先根据据先序序序列和中中序序列列建立二二叉树,然然后按要要求先序序遍历一一遍二叉叉树即可可。当然然,由于于建树过过程实际际也是在在先序遍遍历二叉叉树,所所以可以以不用实实际建树树,只是是模拟那那个过程程,然后后再过程程中输出出即可。建建树过程程简单的的说就是是以先序序序列定定根节点点,以中中序序列列和和根根节点定定左右子子树。#inclludee #inclludee usingg naamesspacce sstd;constt innt mmaxnn = 27;int NN;char PreeOrdde
4、rmaxxn, 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 - 11); priint
5、ff(); 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 = strrlenn(Prr
6、eOrrderr); DFSS(0, leen - 1, 0, leen - 1); priintff(n); rretuurn 0;C-取石子子首先给出出必胜结结论,只只要n != 2xx,则先先手必胜胜。证明明:假设设n = 122,将它它转换为为二进制制则为11000。先手手第一次次取只需需把二进进制中从从低位数数起第一一个1取走即即可。在在这个例例子中,先先手留给给后手石石子数的的二进制制为110000。这这样后手手能取的的石子数数的二进进制范围围为000011-01000,无无论后手手怎么取取,它都都不可能能把所有有数字都都取完,而而且取了了之后剩剩下的石石子数的的二进制制后3位位肯
7、定有有一个1。先先手只需需再次将将从低位位数起的的第一个个1取走即即可重复复上述过过程直至至游戏结结束。而而如果先先手第一一次面对对的石子子数是22x个个,由于于他第一一次不能能把石子子都取完完,所以以他无论论如何取取都会把把上述必必胜状态态留给对对手。同样根据据上述证证明方法法可以证证明如果果先手必必胜,那那么他第第一次取取的最少少石子数数就是石石子数的的二进制制中,从从低位数数起的第第一个1。#inclludee usingg naamesspacce sstd;int mmainn() iint n, t; wwhille (scaanf(%dd, &n) != EOOF) t = 1;
8、 whiile (!(n & 1) n = 1; t = 1; if (n = 1) priintff(lloseen); elsse pprinntf(wiin %dnn, t); rretuurn 0;D-关键词词统计这题最佳佳解法是是先建立立单词的的字典树树,然后后再把文文章中的的单词一一个一个个抠出来来进行匹匹配,时时间复杂杂度是OO(m+n)。mm是文章章长度,nn是单词词总长度度。但是是省赛时时我们数数据放得得比较松松,只要要是把单单词一个个一个抠抠出来比比较的都都能过。#inclludee usingg naamesspacce sstd;constt innt mmaxnn =
9、 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; if (tiir
10、ep.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 != -11; pp = nx
11、ttp) 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(woord); ff
12、or (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-搬书这题很多多人可能能想复杂杂了,比比赛中有有的队是是用DPP过的。但但其实只只要对体体积进行行
13、二分,然然后暴力力法测试试即可。二二分体积积时间复复杂度OO(loogd),测试试时间复复杂度OO(n+m)。所所以总的的时间复复杂度是是O(n+mm)loogd),其中中d是箱箱子体积积最大可可能值和和最小可可能值之之差,nn是书的的数量,mm是箱子子的数量量。#inclludee usingg naamesspacce sstd;constt innt mmaxnn = 10000;int vvmaaxn;int mmainn() iint n, m; iint maxxv, minnv; iint lefft, rigght, miid, cunnt, ptrr, lleavve; ww
14、hille (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 - vvpttr;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽省 年度 达内杯 程序设计 大赛 解题 报告 4529
限制150内