2012福建省信息学奥林匹克CCFNOIP夏令营第七天训练(附解题思路及参考程序).docVIP

2012福建省信息学奥林匹克CCFNOIP夏令营第七天训练(附解题思路及参考程序).doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012福建省信息学奥林匹克CCFNOIP夏令营第七天训练(附解题思路及参考程序)

2012福建省信息学奥林匹克CCF NOIP夏令营第七天训练 (附解题思路及参考程序) 问题名称 文件名 输入文件 输出文件 时限 分值 Couple number couple couple.in couple.out 1s 100 广义斐波那契数列 sequence sequence .in sequence .out 1s 100 车的放置 place place.in place.out 1s 100 内存限制均为256M Couple number(couple) 【问题描述】 任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。你的工作就是判断一个数N是不是Couple number。 【输入文件】 仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。 【输入文件】 输出在n1到n2范围内有多少个Couple number。 注意:包括n1和n2两个数,且n1n2,n2 - n1 = 10 000 000。 【输入样例】 1 10 【输出样例】 7 广义斐波那契数列(sequence) 【问题描述】 广义的斐波那契数列是指形如an=p*an-1+q*an-2的数列。今给定数列的两系数p和q,以及数列的最前两项a1和a2,另给出两个整数n和m,试求数列的第n项an除以m的余数。 【输入文件】 输入包含一行6个整数。依次是p,q,a1,a2,n,m,其中在p,q,a1,a2整数范围内,n和m在长整数范围内。 【输出文件】 输出包含一行一个整数,即an除以m的余数。 【输入样例】 1 1 1 1 10 7 【输出样例】 6 【样例说明】 数列第10项是55,除以7的余数为6。 车的放置(place) 【问题描述】 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数。 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也就是这K个车没有两个车在同一行,也没有两个车在同一列,问有多少种方案。同样只需要输出答案mod 100003后的结果。 【输入文件】 输入文件place.in的第1行为有5个非负整数a, b, c, d和k。 【输出文件】 输出文件place.out包括1个正整数,为答案mod 100003后的结果。 【样例输入】 2 2 2 2 2 【样例输出】 38 【数据规模与约定】 对于部分数据,有b = 0; 对于部分数据,有a,b,c,d≤4。 对于100%的数据,a,b,c,d,k≤1000,且保证了至少有一种可行方案。 Couple number a*a-b*b=n = (a+b)(a-b)=n 如果n是奇数,则a,b一奇一偶,而n=1*n,所以,令a=(n+1)/2,b=(n-1)/2,即n一定是Couple number。 如果n是偶数,则a,b同奇同偶, 此时如果n mod 4=2,则n一定是拆成一奇一偶的和,即x+y和x-y的值一定是一奇一偶,这种情况下x,y肯定无整数解,所以此时的n一定不是Couple number; 如果n mod 4=0,则a=n/4+1,b=n/4-1,即n一定是Couple number。 参考程序: var x,y,i,ans:longint; begin assign(input,couple.in); reset(input); readln(x,y); close(input); ans:=0; for i:=x to y do begin if odd(i) then inc(ans) else if i mod 4=0 then inc(ans); end; assign(output,couple.out); rewrite(output); writeln(ans); close(output); end. 广义斐波那契数列 由于n巨大,从头开始一一推算数列的每一项是不可能的。又由于m巨大,利用数列对m取余的余数循环性质也是不可能的。而本题采用的算法是由原本的递推公式(数列中某项与前两项的关系),推导得出数列中某项和与其遥遥相隔的连续两项之间的关系(比如a100与a1,a2之间的关系)。推导过程如下。 an=p*an-1+q*an-2 an=(p*p+q)*an-2+(p*q)*an-3 an=((p*p+q)*p+p*q)*an-3+((p*p+q)*q)*an-4 …… an=ck*an-k+dk*an-k-1 (其中c、d数列的递推公式是cn=p*cn-1+dn-1,dn=q*cn-1,

文档评论(0)

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

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

1亿VIP精品文档

相关文档