NOIP2014提高组复赛试题day1+day2

合集下载

NOIP2014普与组复赛试题讲解(c++版本)

NOIP2014普与组复赛试题讲解(c++版本)


d--;r--;

}

}

}
-9-
第4题 “子矩阵”简述
- 10 -
暴力搜索(预计得分50分)
➢ 构造出行(DFS) ➢ 构造出列(DFS) ➢ 计算目前的子矩阵的分值
- 11 -
暴力搜索程序模块
➢ void w(int k)
➢{
if(k==row+1)
➢ { h(1);//进入列搜索

return; }

if(ansa*b1>ansb*a1)
{

else return gcd(y,t);

ansa=a1;
➢}
➢ ansb=b1;
➢ int main()
➢}
➢{

}

int a,b,l,a1,b1,ansa,ansb; ➢ cout<<ansa<<" "<<ansb;

cin>>a>>b>>l;
➢ return 0;

return; }
➢ if(m-c[g-1]>=col-g+1)
➢ { for(int i=c[g-1]+1;i<=m;i++)

{ c[g]=i;

h(g+1);}
➢}
➢}
- 13 -
暴力搜索程序模块
➢ int pd()
➢{
➢ int sum=0;
➢ for(int i=1;i<=row;i++)

2014noip复赛模拟练习14

2014noip复赛模拟练习14

1. 支撑数:【试题描述】在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和右边相邻的数大,你能找到它们吗?每行输出5项。

【输入描述】第一行为整数m,表示输入的整数个数。

(3<= m <=100 )第二行为m个整数。

【输出描述】若干个支撑数【输入样例】141 32 4 1 53 9 7 10 8 23 85 43【输出样例】 3 4 5 9 10852. Alunay最近迷上了数独这个游戏,他在完成一个数独后总要费一些时间来检查。

于是他把Whitegene作为苦力拽来帮他检查。

由于Whitegene是搞OI的,所以他就想写个程序来判断Alunay完成的数独是否正确。

不过最近他在感情上遇到了一些问题没有功夫去写,就想请你帮他完成这个任务。

数独规则:拼图是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。

在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。

输入格式:一个9*9个矩阵输出格式:一个数字,1为构成数独,0为不构成数独样例输入1 4 9 8 3 6 7 5 2 5 7 6 2 4 1 9 3 8 2 3 8 5 7 9 1 6 4 7 2 4 3 6 8 5 9 16 8 3 9 1 5 4 27 9 5 1 4 2 7 38 6 3 6 2 79 4 8 1 5 4 1 5 6 8 3 2 7 9 8 9 7 1 5 2 6 4 3 输出0输入7 6 1 9 3 4 8 2 53 54 6 2 8 1 9 79 2 8 1 5 7 6 3 42 1 9 5 4 63 7 84 8 3 2 7 95 1 65 76 3 8 1 9 4 21 9 5 7 62 4 8 38 3 2 4 9 5 7 6 16 478 1 3 2 59 输出13.图书馆馆长正犯愁呢,原来,有一堆的书要他整理,每本书都有一个书号(<=32767),现在他有一本书,这本书的书号为K(<=32767),现在他要找出一本书号比这本书大的书和书号比这本小的书(但都要最接近图书馆馆长已有的书号),将找到的这两本书的书号加起来,并算出加起来以后的数是否为素数Input 第一行二个数为N,K,表示几本书以及手中书的书号(<=32767)第二行开始有N个整数,表示这些书的书号Output 第一行一个数,表示两本书书号加起来的和第二行一个字符,表示和是否为素数,若是则输出"Y"否则输出"F"(引号不打出)Sample Input 6 56 4 5 3 1 20Sample Output 10F4 某工厂为制造大型设备购买了一批零件,为了解这批零件工作的稳定性,技术部门对它们进行了故障检测,并记录了每个零件的故障系数(1-1000的整数)。

长乐一中Day1题目

长乐一中Day1题目

全国信息学奥林匹克联赛(NOIP2014)复赛模拟题Day1长乐一中题目名称正确答案序列问题长途旅行英文名称answer sequence travel输入文件名answer.in sequence.in travel.in输出文件名answer.out sequence.out travel.out 时间限制1s1s1s空间限制256M256M256M测试点数目202010测试点分值5510是否有部分分无无无题目类型传统传统传统是否有SPJ无无无1.正确答案【题目描述】小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案。

“吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”。

外卡组试卷中共有m道判断题,小H与小Y一共从其他n个神犇那问了答案。

之后又从小G那里得知,这n个神犇中有p个考了满分,q个考了零分,其他神犇不为满分或零分。

这可让小Y与小H犯了难。

你能帮助他们还原出标准答案吗?如有多解则输出字典序最小的那个。

无解输出-1。

【输入格式】第一行四个整数n,m,p,q,意义如上描述。

接下来n行,每一行m个字符’N’或’Y’,表示这题这个神犇的答案。

【输出格式】仅一行,一个长度为m的字符串或是-1。

【样例输入】2220YYYY【样例输出】YY【数据范围】30%:n<=100.60%:n<=5000,m<=100.100%:1<=n<=30000,1<=m<=500.0<=p,q且p+q<=n.2.序列问题【题目描述】小H是个善于思考的学生,她正在思考一个有关序列的问题。

她的面前浮现出了一个长度为n的序列{ai},她想找出两个非空的集合S、T。

这两个集合要满足以下的条件:1.两个集合中的元素都为整数,且都在[1,n]里,即Si,Ti∈[1,n]。

2.对于集合S中任意一个元素x,集合T中任意一个元素y,满足x<y。

NOIP历年复赛提高组试题(2006-2014)

NOIP历年复赛提高组试题(2006-2014)

第十二届全国信息学奥林匹克分区联赛(NOIP2006)复赛试题(提高组竞赛用时:3小时)关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。

2.允许使用数学库(uses math子句),以及ansistring。

但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。

二.关于C++语言中模板使用的限制说明1.允许使用的部分:标准容器中的布尔集合,迭代器,串,流。

相关的头文件:<bitset > <iterator > <string > <iostream >2.禁止使用的部分:序列:vector,list,deque序列适配器:stack, queue, priority_queue 关联容器:map, multimap, set, multiset 拟容器:valarray 散列容器:hash_map, hash_set, hash_multimap, hash_multiset 所有的标准库算法相关头文件:<vector > <list > <deque > <stack > <map > <set > <algorithm >1.能量项链(energy.pas/c/cpp)【问题描述】在Mars星球上,每个Mars人都随身佩带着一串能量项链。

在项链上有N颗能量珠。

能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。

并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。

因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。

NOIP2014复赛普及组第一题题解

NOIP2014复赛普及组第一题题解

活动园地NOIP2014复赛普及组第一题题解原题一、题目简化:求N个正数中有多少个数是这些数中其它两个数的和。

3<=N<=100; 每个正整数M:1<=M<=10000;二、过程分析:试题显然可以分成三个步骤求解:1、先求出N个数中每两个数的和;2、判断这些和中有没有重复,重复的数只留下一个;3、N个数中的每一个数都与这些和比较,若相等些记下,比较完成,即得其解。

三、算法与策略:三个步骤都采用一一列举所有可能的方法,是典型的枚举。

四、程序设计思路:1、一维数组A存放N个数,一维数组B存放两两相加的和;求和、判断重复、比较两数是否相等,都采用两重循环,i 控制外循环,j 控制内循环,k表示数组B的下标变化,ans表示题目答案。

数组a最多100个元素,考虑到用循环,为防止下标越界,可适当把数组开大一些,a[0..101];数组b中元素数是N个数两个数两两相加的和的个数,由于N最大是100,所以和的个数最多是1+2+3+……99=4950个,则b[0..5000]五、程序设计:program count;vara:array[0..101] of longint;b:array[0..5000] of longint;n,ans,i,j,k:longint;beginassign(input,'count.in');reset(input);assign(output,'count.out');rewrite(output);readln(n);for i:=1 to n doread(a[i]);fillchar(b,sizeof(b),0);**下面开始步骤1:a中的数两两相加放在b中**k:=1;for i:=1 to n-1 dofor j:=i+1 to n dobeginb[k]:=a[i]+a[j];inc(k);end;**下面开始步骤2:筛掉b中的重复数据:**for i:= 1 to (k-1)-1 do for j:=i+1 to k-1 do begin if b[i]:=b[j] then b[j]:=0; end;**下面开始步骤3:比较a 数组中有多少个数与b 数组中的数相等:** ans:=0; for i:=1 to n dofor j:=1 to k-1 do begin if (a[i]=b[j]) then inc(ans); end;**比较结束,结果已得出,下面输出结果,关闭文件,结束程序** write(ans); close(input) close(output); end.六、时间复杂度分析:三个步骤采用了三个双重循环,每个双重循环运行约N ·∑-=11n i i 次,若N =100,则整个程序运行约150万次操作,T (N )=0(N 3)理论上讲,还可以忍受。

2014noip复赛模拟练习1

2014noip复赛模拟练习1

1.【问题描述】请统计某个给定范围[L,R]的所有整数中,数字N出现的次数。

【输入格式】共1行,为三个正整数L、R和N,之间用空格隔开。

(1≤L≤R≤10000)。

【输出格式】仅1行,表示数字N出现的次数。

如输入2 22 2 则输出62.用自然数1,2,3,4,5,。

构成连续数1234567891011…9899100101…从键盘输入整数m(20000m),输出第m位数字。

样例输入输出:输入:m=15输出:23. 聪明的囚犯:传说从前有一个残暴的国王,喜欢杀戮百姓。

有一次,他抓到30个百姓并要一一杀掉。

在这30个百姓中间有一个聪明人,他站出来对国王说:“请国王打发慈悲,赦免两个人不死。

”国王问:“赦免哪两个人不死?”那个聪明人回答说:“我们30个人围成一圈,从1开始报数,凡数到5的人就拉出去杀掉,剩下的人继续从1开始报数,循环反复,直到剩下两个人为止,这两个人被赦免。

”国王一听很有意思,就同意了聪明人的建议,叫这30个百姓围成一圈,依依报数,凡数到5的就杀掉。

最后只剩下两个人没有被杀掉,而聪明人就是其中之一。

编写程序,输入N个百姓,由计算机判断一下,聪明人要站在什么位置,才能躲过这场屠杀。

如输入N=30则输出14 34. 算盘,这个古老的计算工具是我国古代的重要发明。

在算盘上,一个档相当于整数的一位,高位在左边,所以,从右向左数,各档依次表示个位、十位、百位、……,在每个档上,靠框的珠不参与计数,靠梁的珠参与计数,且梁上面的珠每个表示5,梁下面的珠每个表示1,并规定0用本档上所有的珠都靠框来表示。

根据这个规则,上面的算盘就表示拨入了一个整数123456789(其它的档,认为是0)。

算盘的初始状态是所有的珠都靠框,即所有档上都是0。

请编写程序计算一下,从初始状态拨入一个整数n(位数≤17),一共需要拨动多少个珠?样例输入:8102 样例输出:75. 现在有一个长度为N(1<=N<=1000)的并且每个数只可能是1或2或3的数列,求至少要交换多少次,才能得到一个升序的序列。

noip2014_day1民间题解

noip2014_day1民间题解
当然你也可以令s=∑ i=1 n a i ,求∑ i=1 n a i (s?a i )
复杂度应该是O(n) 的
T3
我们很容易看出一个很经典的完全背包的框架:我们可以在某个时刻上升1,2,3,…∞ 次,有n 个时刻
当然根据题意,这题和完全背包有很多的不同,比如能下降,不能选择上升0 次,下界不可到上界不可越,有些位置不允许,等等等等
我们要做的是对于一个数组a 1 ,a 2 ,a 3 ,…,a m ,要求a i a j ,i≠j 的Σ与max
max是个很简单的事情,你只要求a 数组的最大值与次大值即可
至于Σ,我们知道∑ i=1 n ∑ j=1 n a i a j =(∑ i=1 n a i ) 2 ,于是容易推出我们要求的就是(∑ i=1 n a i ) 2 ?∑ i=1 n a 2 i
如此问题就解决了,时间复杂度O(nm)
由于有障碍,我们求出dp i,j 后再将障碍位置的值赋ห้องสมุดไป่ตู้为∞
由于上界可以越过,所以要特殊转移一下,dp i,m =max(dp i?1,k +s k ) ,s k 为k 达到m 处的花费,他是个式子,在此不将其展开
最后由于能下降,所以dp i,j 还可以由上一步在j+y i 的状态转移
即使如此,我们仍然能以完全背包的思想为核心,解决这个题
由于是完全背包,显然可以用滚动数组优化将空间降为O(m) 。为了便于理解,我们用二维状态来描述:dp i,j 表示横坐标为i ,纵坐标为j 的最小步数
由于不能上升0 次,我们这样转移:dp i,j =max(dp i?1,j?x i +1,dp i,j?x i +1)
noip 2014民间题解

NOIP历年复赛提高组试题(2004-2013)

NOIP历年复赛提高组试题(2004-2013)

第十届全国信息学奥林匹克分区联赛(NOIP2004)复赛试题(提高组竞赛用时:3小时)1、津津的储蓄计划(Save.pas/dpr/c/cpp)【问题描述】津津的零花钱一直都是自己管理。

每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。

因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如11月初津津手中还有83元,妈妈给了津津300元。

津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。

到了11月月末,津津手中会剩下3元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。

有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。

如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。

如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

【输入文件】输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。

【输出文件】输出文件save.out包括一行,这一行只包含一个整数。

如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

【样例输入1】29023028020030017034050908020060【样例输出1】-7【样例输入2】29023028020030017033050908020060【样例输出2】1580【问题描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。

2014noip复赛模拟练习2(答案)

2014noip复赛模拟练习2(答案)

1.某监狱里有个很长的走廊,走廊中一个接一个地有N个房间。

每个房间中锁着一个犯人。

一天夜里,狱警决定玩一个无聊游戏。

第1轮中,他喝了一口威士忌,然后打开每个房间。

第2轮,他喝了一口威士忌,然后按2的倍数遍历每个房间。

第3轮,他又喝了一口威士忌,然后遍历所有3的倍数的房间。

依次类推。

在遍历中,如果房间是锁着的,则打开;否则锁上。

他这样重复N轮,最终醉酒。

这时有些囚犯看到自己房间的锁被打开了,他们立即逃跑。

对于有N个房间的走廊,最终会有多少囚犯逃脱?输入:输入数据的第一行中有一个整数,表示有多少组测试数据。

接下来的若干行每行包含一个值为5-100的整数,这是房间的数目。

输出:对应输入数据输出多行,每行一个整数,表示逃脱的囚犯数量。

样例输入:25100样例输出:210var n,num,s,m,i,k,j:integer;a:array[0..200]of boolean;begin readln(num);for i:=1 to num dobegin readln(n);fillchar(a,sizeof(a),true);for j:=1 to n dofor k:=1 to n doif k mod j=0 then a[k]:=not a[k];s:=0;for j:=1 to n doif a[j]=false then inc(s);writeln(s);end;end. 输入3 10 35 50输出3 5 7输入3 22 68 99 输出 4 8 9输入5 10 30 60 85 100 输出 3 5 7 9 10一个自然数,若它的素因数至少是两重的(相同的素因数至少个数为二个,如:24=2*2*2*3,则称该数为“漂亮数”。

若相邻的两个自然数都是“漂亮数”,就称它们为“孪生漂亮数”,例如8和9就是一对“孪生漂亮数”。

输入X,Y,编程找出[X,Y]之间的所有“孪生漂亮数”。

如输入2 25,则输出8 924 25var i,n,a,t,x,y,s:longint; f :boolean;begin readln(x,y);a:=x;repeata:=a+1;n:=a;f:=false; i:= 2 ;while n >= i do begint:=0;while n mod i = 0 do begint:=t+1;n := n div i;end;if t>=2 then f:=true;i := i+1;end;if f then beginn:=a+1;f:=false; i:= 2 ;while n >= i do begint:=0;while n mod i = 0 do begint:=t+1;n := n div i;end;if t>=2 then f:=true;i := i+1;end; end;if f then begin s:=s+1; writeln(a,’‘,a+1);end;until a=y;readln;end.输入50 120输出63 64 75 76 80 81 98 99 99 100 116 117 120 121 输入354 480 输出360 361 363 364 368 369 。

2014noip普及组复赛测试(答案)

2014noip普及组复赛测试(答案)

老师给笑笑布置了一份作业,笑笑不知如何解决。

老师给了一串很长的数列,要求从中找出连续的一段来使的总和最大。

【输入文件】:第一行包含一个整数n,表示数列的长度。

(n<=100000)第二行包含n个整数来描述这个数列,每个整数的的绝对值不超过1000。

【文件输出】:文件中只有一个整数,为最大的连续段总和。

【输入样例】:51 -23 1 -4【输出样例】4vars:array[1..10000] of longint;n,ii,t,ans:longint;beginreadln(n);for i:=1 to n doread(s[i]);t:=s[1];ans:=s[1];for i:=2 to n dobeginif t<0 then t:=s[i] else t:=t+s[i];if t>ans then ans:=t;end;writeln(ans);end.输入61 5 4 -2 63 输出17输入1024 -12 9 11 7 20 -8 15 3 18 输出87输入710 8 9 -5 12 6 11 输出51输入205 12 19 20 -7 -6 18 22 19 8 11 33 15 32 17 -30 4 14 24 -13输出230【问题描述】鲁宾逊先生有一只宠物猴,名叫多多。

这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。

鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。

在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。

有经验的多多一眼就能看出,每棵花生植株下的花生有多少。

为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。

”我们假定多多在每个单位时间内,可以做下列四件事情中的一件:1)从路边跳到最靠近路边(即第一行)的某棵花生植株;2)从一棵植株跳到前后左右与之相邻的另一棵植株;3)采摘一棵植株下的花生;4)从最靠近路边(即第一行)的某棵花生植株跳回路边。

NOIP2014复赛提高组模拟试题

NOIP2014复赛提高组模拟试题

CCF 全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day1(请选手务必仔细阅读本页内容)一、题目概况二、提交源程序文件名三、编译命令(不包含优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+, 2.71GHz,内存 2G,上述时限以此配置为准。

4、只提供 Linux 格式附加样例文件。

5、特别提醒:评测在 NOI Linux 下进行。

6、为了方便评测请以自己名字的拼音为文件夹名,而且将原程序直接保存在文件夹内,不用再新建子文件夹。

1.斐波那契(pf.pas/c/cpp)【问题描述】是个斐波那契数迷。

他是如此的酷爱这个数列,因此他想知道很多关于这个数列的东西,比方说第个斐波那契数是多少啊、前项的和是多少啊如何用若干个斐波那契数的和表示一个自然数啊之类之类的。

今天他希望知道的是:第个斐波那契数的末尾一位是多少?记表示第个斐波那契数,。

【输入】输入文件名为pf.in,共行。

输入只有一个数。

【输出】输出文件名为pf.out,仅一行,即第个数的最后一位。

【输入输出样例】【数据说明】对于3的数据满足,;对于的数据满足,。

(toy.pas/c/cpp)【问题描述】一天小D去超市买回来了一个玩具,这个玩具是由n个球和一些支架组成,每一个支架连接着两个不同的球,通过支架每两个球之间的简单路径有且只有一条,如果某一个支架的两端的球全被拿走,那么这个玩具就会垮掉。

小D无聊的时候开始拿走球,问,他有多少中拿球方案,使玩具不垮。

【输入】输入文件名为toy.in。

第一行一个数n 表示球的个数接下来若干行每行两个数a,b表示有一个支架连接着球a和球b【输出】输出文件名为toy.out.一行一个数ans 表示DRJ拿球的方案数mod 109+7(可以一个球也不拿)【输入输出样例】【数据说明】30%的数据满足n<=20;50%的数据满足n<=1000100%的数据满足 n<=500000;(running.cpp/c/pas)【问题描述】某校开展了同学们喜闻乐见的阳光长跑活动。

2014noip复赛模拟练习1(答案)

2014noip复赛模拟练习1(答案)

【问题描述】请统计某个给定范围[L,R]的所有整数中,数字N出现的次数。

【输入格式】共1行,为三个正整数L、R和N,之间用空格隔开。

(1≤L≤R≤10000)。

【输出格式】仅1行,表示数字N出现的次数。

如输入2 22 2 则输出6var a,b,c,d,e,f,n:integer;beginassign(input,'two.in');reset(input);assign(output,'two.out');rewrite(output);readln(a,b,n);f:=0;d:=0;for c:=a to b dobegine:=c;repeatd:=e mod 10;e:=e div 10;if d=n then inc(f);until e=0;end;writeln(f);close(input);close(output);end.输入2 100 5输出 20 输入 1 1000 9 输出 300输入 2222 2223 2 输出 7 输入 9993 10000 2 输出 02.用自然数1,2,3,4,5,。

构成连续数1234567891011…9899100101…从键盘输入整数m(20000m),输出第m位数字。

样例输入输出:输入:m=15输出:2①m=11②m=194③m=100007④m=199992var p,d,i,j,w,c,m:integer;beginwrite('m=');readln(m);c:=1;i:=1;while c<m do begini:=i+1;w:=1;j:=i;while j>=10 do beginj:=j div 10;w:=w+1;end;c:=c+w;end;d:=c-m+1;for j:=1 to d do beginp:=i mod 10;i:=i div 10;end;writeln(p);end.3.聪明的囚犯:传说从前有一个残暴的国王,喜欢杀戮百姓。

noip2014(简单题)全解

noip2014(简单题)全解
点击查看大图
现在,小 A 和小 B 尝试玩这种升级版的猜拳游戏。已知他们的出拳都是有 周期性规律的,但周期长度不一定相等。例如:如果小 A 以“石头-布-石头 -剪刀-蜥蜴人-斯波克”长度为 6 的周期出拳,那么他的出拳序列就是“石 头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克……”,而如果小 B 以“剪刀-石头-布-斯波克-蜥蜴人”长度为 5 的周期 出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布 -斯波克-蜥蜴人-……” 已知小 A 和小 B 一共进行 N 次猜拳。每一次赢的人得 1 分,输的得 0 分; 平局两人都得 0 分。现请你统计 N 次猜拳结束之后两人的得分。
i=1; j=1;
if((b[j]==2)||(b[j]==3)) if(b[j]==0) sum++; continue; } if(a[i]==1) { if((b[j]==0)||(b[j]==3)) if(b[j]==1) sum++; continue;
sa++;
sa++;
} if(a[i]==2) {
பைடு நூலகம்
现在政府有关部门准备安装一个传播参数为 d 的无线网络发射器,希望你帮
助他们在城市内找出合适的路口作为安装地点,使得覆盖的公共场所最多。
简单说下坑
菜比思路就是纯暴力,枚举每个能放发射器的地方然后看
哪一个覆盖的公共场所最多。怎么求每个位置的覆盖公共 场所数这里,可以在读入公共场所的位置的时候就把能覆 盖这个公共场所的位置求一下,位置上的覆盖数++;也可 以枚举每个位置时再用双重循环找它的覆盖范围内的公共 场所数。不管怎么玩应该都不会超时。 很多人没有AC,因为这道题有坑。很多人拿了60、70、 80分。 但是英勇的大哥AC了! 坑就是街道是编号为0-128的129条,枚举的边界虽然在这 里面,但是加上了覆盖范围之后就可能数组越界。必须判 断在不在范围内。 仁慈的出题人没有让覆盖范围是圆形。。。幸好是方形。

NOIP2014提高组复赛试题day1day2

NOIP2014提高组复赛试题day1day2

CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day11.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。

如果两个人出拳一样,则不分胜负。

在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。

升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。

蜥蜴人:《星际迷航》中的反面角色。

这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。

表一石头剪刀布升级版胜负关系乙剪刀石头布蜥蜴人斯波克甲对乙的甲结果剪刀平输赢赢输石头平输赢输布平输赢蜥蜴人平赢斯波克平现在,小A和小B尝试玩这种升级版的猜拳游戏。

已知他们的出拳都是有周期性规律的,但周期长度不一定相等。

例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。

每一次赢的人得1分,输的得0分;平局两人都得0分。

现请你统计N次猜拳结束之后两人的得分。

【输入】输入文件名为rps.in。

第一行包含三个整数:N,NA,NB,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。

数与数之间以一个空格分隔。

第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。

其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”, 4表示“斯波克”。

数与数之间以一个空格分隔。

【输出】输出文件名为rps.out。

输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。

【输入输出样例1】rps.in rps.out10 5 66 20 1 2 3 40 3 4 2 1 0【输入输出样例2】rps.in rps.out4 49 5 50 1 2 3 41 0 32 4【数据说明】对于100%的数据,0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200。

NOIP历年复赛提高组试题(2004-2013)

NOIP历年复赛提高组试题(2004-2013)

第十届全国信息学奥林匹克分区联赛(NOIP2004)复赛试题(提高组竞赛用时:3小时)1、津津的储蓄计划(Save.pas/dpr/c/cpp)【问题描述】津津的零花钱一直都是自己管理。

每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。

因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如11月初津津手中还有83元,妈妈给了津津300元。

津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。

到了11月月末,津津手中会剩下3元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。

有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。

如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。

如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

【输入文件】输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。

【输出文件】输出文件save.out包括一行,这一行只包含一个整数。

如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

【样例输入1】29023028020030017034050908020060【样例输出1】-7【样例输入2】29023028020030017033050908020060【样例输出2】1580【问题描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。

NOIP2014提高组复赛试题day1day2

NOIP2014提高组复赛试题day1day2

CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day11.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。

如果两个人出拳一样,则不分胜负。

在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。

升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。

蜥蜴人:《星际迷航》中的反面角色。

这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。

表一石头剪刀布升级版胜负关系乙剪刀石头布蜥蜴人斯波克甲对乙的甲结果剪刀平输赢赢输石头平输赢输布平输赢蜥蜴人平赢斯波克平现在,小A和小B尝试玩这种升级版的猜拳游戏。

已知他们的出拳都是有周期性规律的,但周期长度不一定相等。

例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。

每一次赢的人得1分,输的得0分;平局两人都得0分。

现请你统计N次猜拳结束之后两人的得分。

【输入】输入文件名为rps.in。

第一行包含三个整数:N,NA,NB,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。

数与数之间以一个空格分隔。

第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。

其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”, 4表示“斯波克”。

数与数之间以一个空格分隔。

【输出】输出文件名为rps.out。

输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。

【输入输出样例1】rps.in rps.out10 5 66 20 1 2 3 40 3 4 2 1 0【输入输出样例2】rps.in rps.out4 49 5 50 1 2 3 41 0 32 4【数据说明】对于100%的数据,0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200。

历届noip提高组复赛试题

历届noip提高组复赛试题

NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛复赛试题(高中组)(上机编程,完成时间:210分钟)<1>编码问题:设有一个数组A:ARRAY[0..N-1] OF INTEGER;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。

例如:N=6时,有:A=(4,3,0,5,1,2)此时,数组A的编码定义如下:A[0]的编码为0;A[i]的编码为:在A[0],A[1],…,A[i-1]中比A[i]的值小的个数(i=1,2,…,N-1)∴上面数组A的编码为:B=(0,0,0,3,1,2)程序要求解决以下问题:①给出数组A后,求出其编码。

②给出数组A的编码后,求出A中的原数据。

<2>灯的排列问题:设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……N k(k表示不同颜色灯的个数)。

放灯时要遵守下列规则:①同一种颜色的灯不能分开;②不同颜色的灯之间至少要有一个空位置。

例如:N=8(格子数)R=2(红灯数)B=3(蓝灯数)放置的方法有:R-B顺序B-R顺序放置的总数为12种。

数据输入的方式为:NP1(颜色,为一个字母)N1(灯的数量)P2 N2……Q(结束标记,Q本身不是灯的颜色)程序要求:求出一种顺序的排列方案及排列总数。

<3> 设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8如下图所示放置:其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出来的。

计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后产生的:计算所用到的计算符为:+,-,⨯,且无优先级之分(自左向右计算),运算符最多为2个。

如:3+4⨯5=35 5⨯4+3=23可以看出,上图中的第三层的数据是由第四层的数据用以下计算公式计算出来的:A=B⨯C+B也就是:8=2⨯3+2,15=3⨯4+3,……14=2⨯6+2程序要求:给出第四层与第三层的数据后,将第一、二层的每块积木标上相应的数据,并输出整个完整的积木图及计算公式。

NOIP历年复赛提高组试题.

NOIP历年复赛提高组试题.

第十届全国信息学奥林匹克分区联赛(NOIP2004)复赛试题(提高组竞赛用时:3小时)1、津津的储蓄计划(Save.pas/dpr/c/cpp)【问题描述】津津的零花钱一直都是自己管理。

每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。

因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如11月初津津手中还有83元,妈妈给了津津300元。

津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。

到了11月月末,津津手中会剩下3元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。

有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。

如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。

如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

【输入文件】输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。

【输出文件】输出文件save.out包括一行,这一行只包含一个整数。

如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

【样例输入1】29023028020030017034050908020060【样例输出1】-7【样例输入2】29023028020030017033050908020060【样例输出2】1580【问题描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day11.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。

如果两个人出拳一样,则不分胜负。

在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。

升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。

蜥蜴人:《星际迷航》中的反面角色。

这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。

现在,小A和小B尝试玩这种升级版的猜拳游戏。

已知他们的出拳都是有周期性规律的,但周期长度不一定相等。

例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。

每一次赢的人得1分,输的得0分;平局两人都得0分。

现请你统计N次猜拳结束之后两人的得分。

【输入】输入文件名为rps.in。

第一行包含三个整数:N,NA,NB,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。

数与数之间以一个空格分隔。

第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。

其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”, 4表示“斯波克”。

数与数之间以一个空格分隔。

【输出】输出文件名为rps.out。

输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。

【输入输出样例2】【数据说明】对于100%的数据,0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200。

2.联合权值(link.cpp/c/pas)【问题描述】无向连通图G有n个点,n-1条边。

点从1到n依次编号,编号为i的点的权值为Wi ,每条边的长度均为1。

图上两点(u, v)的距离定义为u点到v点的最短距离。

对于图G上的点对(u, v),若它们的距离为2,则它们之间会产生W u×W v的联合权值。

请问图G上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?【输入】输入文件名为link.in。

第一行包含1个整数n。

接下来n-1行,每行包含2个用空格隔开的正整数u、v,表示编号为u和编号为v的点之间有边相连。

最后1行,包含n个正整数,每两个正整数之间用一个空格隔开,其中第i个整数表示图G上编号为i的点的权值为Wi。

【输出】输出文件名为link.out。

输出共1行,包含2个整数,之间用一个空格隔开,依次为图G上联合权值的最大值和所有联合权值之和。

由于所有联合权值之和可能很大,输出它时要对10007取余。

【输入输出样例】link.in link.out520 741 22 33 44 51 523 10【样例说明】本例输入的图如上所示,距离为2的有序点对有(1,3)、(2,4)、(3,1)、(3,5)、(4,2)、(5,3)。

其联合权值分别为2、15、2、20、15、20。

其中最大的是20,总和为74。

【数据说明】对于30%的数据,1<≤100;对于60%的数据,1<≤2000;对于100%的数据,1<≤200,000,0<Wi≤10,000。

3. 飞扬的小鸟(bird.cpp/c/pas)【问题描述】Flappy Bird 是一款风靡一时的休闲手机游戏。

玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。

如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。

为了简化问题,我们对游戏规则进行了简化和改编:1.游戏界面是一个长为n,高为m的二维平面,其中有k个管道(忽略管道的宽度)。

2.小鸟始终在游戏界面内移动。

小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成。

3.小鸟每个单位时间沿横坐标方向右移的距离为1,竖直移动的距离由玩家控制。

如果点击屏幕,小鸟就会上升一定高度X,每个单位时间可以点击多次,效果叠加;如果不点击屏幕,小鸟就会下降一定高度Y。

小鸟位于横坐标方向不同位置时,上升的高度X和下降的高度Y可能互不相同。

4.小鸟高度等于0或者小鸟碰到管道时,游戏失败。

小鸟高度为m时,无法再上升。

现在,请你判断是否可以完成游戏。

如果可以,输出最少点击屏幕数;否则,输出小鸟最多可以通过多少个管道缝隙。

【输入】输入文件名为 bird.in。

第1行有3个整数n,m,k,分别表示游戏界面的长度,高度和水管的数量,每两个整数之间用一个空格隔开;接下来的n行,每行2个用一个空格隔开的整数X和Y,依次表示在横坐标位置0~n-1上玩家点击屏幕后,小鸟在下一位置上升的高度X,以及在这个位置上玩家不点击屏幕时,小鸟在下一位置下降的高度Y。

接下来k行,每行3个整数P,L,H,每两个整数之间用一个空格隔开。

每行表示一个管道,其中P表示管道的横坐标,L表示此管道缝隙的下边沿高度为L,H表示管道缝隙上边沿的高度(输入数据保证P各不相同,但不保证按照大小顺序给出)。

【输出】输出文件名为bird.out。

共两行。

第一行,包含一个整数,如果可以成功完成游戏,则输出1,否则输出0。

第二行,包含一个整数,如果第一行为1,则输出成功完成游戏需要最少点击屏幕数,否则,输出小鸟最多可以通过多少个管道缝隙。

【输入输出样例1】【输入输出样例说明】如下图所示,蓝色直线表示小鸟的飞行轨迹,红色直线表示管道。

【数据范围】对于30%的数据:5≤n≤10,5≤m≤10,k=0,保证存在一组最优解使得同一单位时间最多点击屏幕3次;对于50%的数据:5≤n≤20,5≤m≤10,保证存在一组最优解使得同一单位时间最多点击屏幕3次;对于70%的数据:5≤n≤1000,5≤m≤100;对于100%的数据:5≤n≤10000,5≤m≤1000,0≤k<n,0<X<m,0<Y<m,0<P<n,0≤L<H ≤m,L+1<H。

CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day21.无线网络发射器选址(wireless.cpp/c/pas)【问题描述】随着智能手机的日益普及,人们对无线网的需求日益增大。

某城市决定对城市内的公共场所覆盖无线网。

假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值1。

东西向街道从北到南依次编号为0,1,2…128,南北向街道从西到东依次编号为0,1,2…128。

东西向街道和南北向街道相交形成路口,规定编号为x的南北向街道和编号为y的东西向街道形成的路口的坐标是(x, y)。

在某些路口存在一定数量的公共场所。

由于政府财政问题,只能安装一个大型无线网络发射器。

该无线网络发射器的传播范围是一个以该点为中心,边长为2*d的正方形。

传播范围包括正方形边界。

例如下图是一个d = 1的无线网络发射器的覆盖范围示意图。

现在政府有关部门准备安装一个传播参数为d的无线网络发射器,希望你帮助他们在城市内找出合适的安装地点,使得覆盖的公共场所最多。

【输入】输入文件名为wireless.in。

第一行包含一个整数d,表示无线网络发射器的传播距离。

第二行包含一个整数n,表示有公共场所的路口数目。

接下来n行,每行给出三个整数x, y, k, 中间用一个空格隔开,分别代表路口的坐标(x, y)以及该路口公共场所的数量。

同一坐标只会给出一次。

【输出】输出文件名为wireless.out。

输出一行,包含两个整数,用一个空格隔开,分别表示能覆盖最多公共场所的安装地点方案数,以及能覆盖的最多公共场所的数量。

【输入输出样例】wireless.in wireless.out1 30124 4 106 6 20【数据说明】对于100%的数据,1 ≤ d ≤ 20,1 ≤ n ≤ 20, 0 ≤ x ≤ 128, 0 ≤ y ≤ 128, 0 < k ≤ 1,000,000。

2.寻找道路(road.cpp/c/pas)【问题描述】在有向图G中,每条边的长度均为1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:1.路径上的所有点的出边所指向的点都直接或间接与终点连通。

2.在满足条件1的情况下使路径最短。

注意:图G中可能存在重边和自环,题目保证终点没有出边。

请你输出符合条件的路径的长度。

【输入】输入文件名为road.in。

第一行有两个用一个空格隔开的整数n和m,表示图有n个点和m条边。

接下来的m行每行2个整数x、y,之间用一个空格隔开,表示有一条边从点x指向点y。

最后一行有两个用一个空格隔开的整数s、t,表示起点为s,终点为t。

【输出】输出文件名为road.out。

输出只有一行,包含一个整数,表示满足题目描述的最短路径的长度。

如果这样的路径不存在,输出-1。

【输入输出样例1】road.in road.out3 2-11 22 11 3【输入输出样例说明】如上图所示,箭头表示有向道路,圆点表示城市。

起点1与终点3不连通,所以满足题目描述的路径不存在,故输出-1。

road.in road.out6 631 21 32 62 54 53 41 5【输入输出样例说明】如上图所示,满足条件的路径为1->3->4->5。

注意点2不能在答案路径中,因为点2连了一条边到点6,而点6不与终点5连通。

【数据说明】对于30%的数据,0< n ≤10,0< m ≤20;对于60%的数据,0< n ≤100,0< m ≤2000;对于100%的数据,0< n ≤10,000,0< m ≤200,000,0< x,y,s,t≤n,x≠t。

3.解方程(equation.cpp/c/pas)【问题描述】已知多项式方程:求这个方程在[1, m]内的整数解(n和m均为正整数)。

【输入】输入文件名为equation.in。

输入共n+2行。

第一行包含2个整数n、m,每两个整数之间用一个空格隔开。

接下来的n+1行每行包含一个整数,依次为a0,a1,a2,……,an。

【输出】输出文件名为equation.out。

第一行输出方程在[1, m]内的整数解的个数。

接下来每行一个整数,按照从小到大的顺序依次输出方程在[1, m]内的一个整数解。

相关文档
最新文档