XX年北京市海淀区信息学竞赛中学组解题报告.docxVIP

XX年北京市海淀区信息学竞赛中学组解题报告.docx

  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文档。上传文档
查看更多
XX年北京市海淀区信息学竞赛中学组解题报告   NBXX初中组T1斯诺克snooker   此题是模拟,基本按题目说的写就好。   需要注意的几点是:   1.打错的球不影响任何状态改变   2.打完15个红球之后特判   3.给对手加分时判断球分是否小于4   4.注意两人切换时除了击球次数重新算其他状态均不变   代码:http:///gmtWn   var   i,rnum,q:longint;   n,s:array[1..2]oflongint;   proceduredeal(x:longint);   var   i,a:longint;   begin   fori:=1ton[x]do   begin   read(a);   ifa=0then   inc(s[3-x],4)   else   ifrnum1then   begin   ifa=max那么说明这个人是“牛人”否则这个人不是。   不难发现这个处理过程是O(n)的加上排序的复杂度O(nlogn)所以整个算法的时间复杂度是O(nlogn)   有个细节要注意就是智力值相同的情况下的判断。一种方法是每次考虑所有智力值一样的一组人不过这样实现起来比较麻烦。另一种方法是对于数据按需要进行双关键字排序,然后直接统计。   Code:http:///rlri0   var   a:array[1..,1..2]ofint64;   i,n,ans:longint;   max:int64;   procedurefs(s,e:longint);   var   m,k,j:longint;   ms:array[1..2]ofint64;   begin   m:=(s+e)shr1;k:=s;j:=e;   ms:=a[m];a[m]:=a[k];   whilekms[1])or((a[j,1]=ms[1])and(a[j,2]ms[2])))doinc(k);ifka[i]那么g[i]=g[i+1]+1否则g[i]=1   接着枚举删去的那段两端的节点标号i,j   那么显而易见的就有ans=max{f[i]+g[i]}(i=1..n,j=i+1..n,且满足a[i]a[i-1]   f[i,1]=f[i-1,1]+1   f[i,2]=max{f[i-1,2]+1,f[j,1]+1}(j=1..i-1,且满足a[i]a[j])否则   f[i,1]=1   f[i,2]=max{1,f[j,1]+1}(j=1..i-1,且满足a[i]a[j])   最后结果嘛当然是ans=max{f[i,2]}(i=1..n)   解法三:O(nlogn)离散化+DP+树状数组/线段树   对付这个数据不需要的说~但为了秒杀还是编了一下那就介绍一下吧   首先数据离散化这个就不详细介绍了因为本题关注的是数字与数字间的大小关系所以直接把每个数字唯一映射到一个1..n内的数字而且保证各数字之间的大小关系不变的话对解题是没有影响的。   NOIPXX普及组解题报告   一、数字反转   没得满分只能说明一个问题,你的程序写的太少了。   programreverse;   var   s:string;   i,sta:longint;   begin   assign(input,);reset(input);   assign(output,);rewrite(output);   readln(i);   str(i,s);   sta:=1;   ifs[1]=-then   begin   write(-);   sta:=2;   end;   i:=length(s);   while(s[i]=0)and(ista)do   dec(i);   while(i=sta)do   begin   write(s[i]);   dec(i);   end;   close(input);close(output);   end.   二、统计单词个数   考你的基本功,和对程序的理解,尤其是细节上的优化。直接在文章中选出单词,与给定单词长度一致时才比较,函数传参数时也不要传字符串。   programstat;   var   s,p:ansistring;   i,j,first,num,len,c,k:longint;   functioncmp(x:longint):boolean;   var   i:longint;   begin   fori:=1tocdo   ifs[i]p[x+i-1]thenexit(false);   exit(true);   end;   begin   assign(input,);reset(input)

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档