复试机试之2011年清华北大大学计算机研究生机试真题.docVIP

复试机试之2011年清华北大大学计算机研究生机试真题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复试机试之2011年清华大学计算机研究生机试真题 (2012-02-02 03:58:27) 转载▼ 标签: 分类: ???????? 清华2011年的上机题目,剩下的最后一道终于做出来了,欢呼! ??????? Problem 1:最小花费 ??????? 动态规划的题目。花了最久时间去想怎么做的题目,不过结果是好的,1AC; ??????? 题目给了三种距离及其花费,而且保证其距离与花费成正比。然后给出两地点,此处注意给的两地点无先后关系,需要在解决的时候做相应变化;然后给出地点数,及从地点0到其它地点的距离,此处要注意;最后需要注意的一点就是给的数据比较大,根据九度OJ要采用long long int型,_int64型在此不能识别。 ??????? 然后按动态规划的记忆化原则从前往后求花费就行了。 #include iostream #include algorithm #include stdio.h #include string #include stack #include stdlib.h #include string.h ? using namespace std; const int MAXN=100000; long long int l[3],c[3],s,d,tmp,num,minc,i,j,dist[MAXN],cost[MAXN]; ? int main(){ ? ????while(scanf(%lld%lld%lld%lld%lld%lld,l[0],l[1],l[2],c[0],c[1],c[2])==6){ ????????scanf(%lld%lld%lld,s,d,num); ????????if(sd){s=s+d,d=s-d,s=s-d;} ????????dist[1]=0; ????????for(i=2;i=num;i++) ????????????scanf(%lld,dist[i]); ? ????????cost[s]=0; ????????for(i=s+1;i=d;i++){ ????????????minc=cost[i-1]+c[2]; ????????????for(j=i-1;j=s;j--){ ????????????????tmp=dist[i]-dist[j]; ????????????????if(tmp=l[0]){ ????????????????????if(cost[j]+c[0]minc) ????????????????????????minc=cost[j]+c[0]; ????????????????} ????????????????else if(tmp=l[1]){ ????????????????????if(cost[j]+c[1]minc) ????????????????????????minc=cost[j]+c[1]; ????????????????} ????????????????else if(tmp=l[2]){ ????????????????????if(cost[j]+c[2]minc) ????????????????????????minc=cost[j]+c[2]; ????????????????} ????????????????else break; ????????????} ????????????cost[i]=minc; ????????} ????????printf(%lld\n,cost[d]); ????} ????return 0; } ??? Problem 2:约数的个数 ???? 这道题目纯粹是考数学的,即给定一个数,输出其约数的个数。如果用暴力的方法做估计会超时,因此根据数论的知识可以知道,如果某数可表示为n=n1^r1*n2^r2·······,其中ni为素数的话,那么数n的约数个数为(r1+1)*(r2+1)*···,此题即可解决。但实现过程中出问题,7次才AC;TLE两次,居然忘了将暴力测试比较的代码去掉;WA三次与RE一次,在写判断的while循环时候写得太挫了,写错了无数次,哎!然后判断中少掉两种情况的判定,导致出错,具体见代码红色部分。 #include iostream #include algorithm #include stdio.h #include string ? using namespace std; int main(){ ????int res,index,j,count,num,tmp,bf,in,pos=10

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档