山东NOIP提高组模拟day1

合集下载

NOIP2012提高组day1

NOIP2012提高组day1

CCF全国信息学奥林匹克联赛(NOIP2012)复赛提高组 day1(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、全国统一评测时采用的机器配置为:CPU Intel Core2 Quad Q8200 2.33GHz, 内存2G,上述时限以此配置为准。

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

1.Vigenère密码(vigenere.cpp/c/pas)【问题描述】16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。

Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。

在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。

在Vigenère密码中,密钥k是一个字母串,k=k1k2…k n。

当明文M=m1m2…m n时,得到的密文C=c1c2…c n,其中c i=m i®k i,运算®的规则如下表所示:®【输入】输入文件名为vigenere.in。

输入共2行。

第一行为一个字符串,表示密钥k,长度不超过100,其中仅包含大小写字母。

第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。

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

输出共1行,一个字符串,表示输入密钥和密文所对应的明文。

对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。

2.国王游戏(game.cpp/c/pas)【问题描述】恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。

NOIP2013提高组复赛试题day1+day2

NOIP2013提高组复赛试题day1+day2

CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(circle.cpp/c/pas)【问题描述】n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。

按照顺时针方向给 n 个位置编号,从 0 到 n-1。

最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。

游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n −m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。

现在,一共进行了10k 轮,请问x 号小伙伴最后走到了第几号位置。

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

输入共 1 行,包含 4 个整数n、m、k、x,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【输入输出样例】circle.in circle.out10 3 4 5 5【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <m <n ,0 ≤ x ≤ n,0 < k< 109。

2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

noip2017提高组试题

noip2017提高组试题

CCF 全国信息学奥林匹克联赛(NOIP2017)复赛提高组 day1(请选手务必仔细阅读本页内容)1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz,内存4G,上述时限以此配置为准。

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

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑(math.cpp/c/pas)小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。

每种金币小凯都有无数个。

在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。

现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

【输入格式】输入文件名为math.in。

输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。

【输出格式】输出文件名为math.out。

输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

见选手目录下的math/math1.in 和math/math1.ans。

【输入输出样例1 说明】小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为11,比11 贵的物品都能买到,比如:12 = 3 * 4 + 7 * 013 = 3 * 2 + 7 * 114 = 3 * 0 + 7 * 215 = 3 * 5 + 7 * 0……【输入输出样例2】见选手目录下的math/math2.in 和math/math2.ans。

noip2017提高组试题(day1+day2)-Word版

noip2017提高组试题(day1+day2)-Word版

全国信息学奥林匹克联赛(2017)复赛提高组 1(请选手务必仔细阅读本页内容)一.题目概况注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、全国统一评测时采用的机器配置为: () x2 240 ,2.8,内存 4G,上述时限以此配置为准。

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

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑()小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。

每种金币小凯都有无数个。

在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。

现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

【输入格式】输入文件名为。

输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。

【输出格式】输出文件名为。

输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

【输入输出样例 1】见选手目录下的 1 和 1。

【输入输出样例 1 说明】小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如:12 = 3 * 4 + 7 * 013 = 3 * 2 + 7 * 114 = 3 * 0 + 7 * 215 = 3 * 5 + 7 * 0……【输入输出样例 2】见选手目录下的 2 和 2。

【数据规模与约定】对于 30%的数据: 1 ≤ a,b ≤ 50。

对于 60%的数据: 1 ≤ a,b ≤ 10,000。

对于 100%的数据:1 ≤ a,b ≤ 1,000,000,000。

NOIP2015提高组复赛试题

NOIP2015提高组复赛试题

【输入输出样例1】 substring.in
6 3 1
aabaab
aab
substring.out

【输入输出样例2】
substring.in
632
aabaab
aab
substring.out

【输入输出样例说明】
所有合法方案如下∶(加下划线的部分表示取出的子串)
样例1∶aab aab / aab aab
测试点编号
“工

[3

100 仰
[100
100 100
100
区el
吕=I

13

[15
100 二
100 [15
10 [16
[10
10
[1187
K 闷
了89
10
100
100
100
100
八闷1闪2
100 13
16 18
邻20
10 [19
10
10
分21
10有的手牌都是随机生成的。
1.若(K-1)在第一行但不在最后一列,则将K填在最后一行,(K-1)所在列
的右一列;
2. 若(K-1)在最后一列但不在第一行,则将K填在第一列,(K-1)所在行的上
一行∶
3. 若(K-1)在第一行最后一列,则将K填在(K-1)的正下方∶
4.若(K-1)既不在第一行,也不在最后一列,如果(K-1)的右上方还未填数,
的位置不同也认为是不同的方案。
【输入格式】
第一行是三个正整数n,m,k,分别表示字符串A的长度,字符串B的长度,以及问
题描述中所提到的k,每两个整数之间用一个空格隔开。

NOIP2021复赛提高组模拟试题

NOIP2021复赛提高组模拟试题

NOIP2021复赛提高组模拟试题ccf全国信息学奥林匹克联赛(noip2021)复赛day1第二轮CCF国家信息学奥林匹克联盟(noip 2022)提高组day1(请仔细阅读本页)一、题目概况中文题目名称英文题目与子目录名可执行文件名输入文件名输出文件名每个测试点时限测试点数目每个测试点分值附加样例文件结果比较方式题目类型运行内存上限二、提交C++语言的源程序文件名,C语言的源程序文件名,Pascal语言的源程序文件名三、编译命令(不包含优化开关)对于C++语言对于C语言对于Pascal语言注意事项:1.文件名(程序名和输入/输出文件名)必须使用小写英语。

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

3.国家统一评估使用的机器配置为cpuamdathlon(TM)64x2dualcorecpu5200+、2.71ghz和2G内存。

以上时限以本配置为准。

4.仅提供Linux格式的其他示例文件。

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

6.为了便于评估,请使用您姓名的拼音作为文件夹名称,并将原始程序直接保存在文件夹中,无需创建新的子文件夹。

g++-opfpf.cpp-g++-otoytoy.cpplmclmgcc-opfpf.c-lmgcc-lmfpcpf.pasfpctoy.pasg++-orunningrunning.cpp-lmgcc-orunningrunning.c-lmfpcrunning.paspf.cpppf.cpf.pastoy.cpptoy.ctoy.pasrunning.cpprunning.crunning.pas斐波那契玩具跑步pftoyrunningpftoyrunningpf.intoy.inrunning.inpf.outtoy.outrunning.out1s1s1s102 0201055是是是全文比较(忽略行末空格和行尾回车)传统传统传统128mb128mb128mb第1页,共5页CCF国家信息学奥林匹克联盟(noip2022)半决赛第1天1.斐波那契(pf.pas/c/cpp)【问题描述】他是斐波那契迷。

NOIP2015提高组day1第二题解题报告

NOIP2015提高组day1第二题解题报告

NOIP2015提高组day1第二题解题报告NOIP2015提高组复赛Day1第二题解题报告By 某蒟蒻zrw1.题目大概描述(因为写的时候题目还没放出来)几个小盆友们在传递自己的信息(生日),并且每个小盆友只会把自己知道的信息传给唯一的一个人【但是自己可以收到很多信息,并会在收到信息的下一轮把这些信息传给那个唯一的人】(单相思233333),问多少轮后自己会收到自己一开始传递出去的自己的信息。

输入:第一行一个整数n,表示有n个人接下来n行,每行一个数j,设这是除第一行外的第i行,那么j 表示第i个人只会把信息传给第j个人。

输出:一个整数,表示最少几轮后自己的信息会回到自己手中。

样例输入:52 4 23 1样例输出:3数据规模:100% n<=200000 60% n<=2500 30% 记不住了……2.大概需要什么样的算法根据数据规模,我们可以大概判断需要多少效率的算法,甚至有的时候可以猜出这题用的是什么算法。

对于本题来说,60%大概就是O(n^2)的算法了,一般是裸的暴力回溯或者是暴力广搜,也有用floyd的(我是从NOIP吧上看到的)。

如果要AC的话,算法效率至少要在O(nlogn)以下(log在这里是以2为底不是以10为底)。

然而,本题是有O(n)算法的,下面会讲。

3.我们还是画个图吧(图可能比较难看,但能看就行)画画图,就会知道这是在做一件什么事情了。

以样例数据为例:我们很容易发现,2,3,4,形成了一个环,而1和5,并没有什么卵用……所以在环234中,由于每一轮可以把在上一轮知道的信息传给唯一的下一个人,在234环中,就需要3轮,信息才能传到多画几个图(由于本人很懒,就只画一张特殊情况比较多的小图):(有木有一种贵圈真乱的感觉)我们可以看出来,1,5,6,成了一个环,而2,3,4,8,也成了一个环,7,9,是来打酱油的。

那么对于这两个环来说,因为每一轮可以传递上一轮信息给下一个人,所以显然是1,5,6这个环比较早传完,3轮。

noip2017提高组试题day1day2Word版

noip2017提高组试题day1day2Word版

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

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

3、全国统一评测时采用的机器配置为: () x2 240 ,2.8,内存 4G,上述时限以此配置为准。

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

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑()小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。

每种金币小凯都有无数个。

在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。

现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

【输入格式】输入文件名为。

输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。

【输出格式】输出文件名为。

输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

【输入输出样例 1】【输入输出样例 1 说明】小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如:noip2017提高组试题day1day2Word版12 = 3 * 4 + 7 * 013 = 3 * 2 + 7 * 114 = 3 * 0 + 7 * 215 = 3 * 5 + 7 * 0……【输入输出样例 2】见选手目录下的 2 和 2。

【数据规模与约定】对于 30%的数据:1 ≤ a,b ≤ 50。

对于 60%的数据:1 ≤ a,b ≤ 10,000。

NOIP2016提高组复赛试题(Day1+Day2)

NOIP2016提高组复赛试题(Day1+Day2)

第22 届全国青少年信息学奥林匹克联赛2016提高组(复赛)第一试竞赛时间:2016 年11 月19 日 8:30 ∼ 12:00提交源程序文件名编译选项注意事项:1. 文件名(程序名和输入输出文件名)必须使用英文小写。

2. 除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。

3. 中函数()的返回值类型必须是,程序正常结束时的返回值必须是0。

4. 全国统一评测时采用的机器配置为: () x2 240 ,2.8,内存4G,上述时限以此配置为准。

5. 只提供格式附加样例文件。

6. 评测在下进行。

7. 编译时不打开任何优化选项。

玩具谜题()【问题描述】小南有一套可爱的玩具小人,它们各有不同的职业。

有一天,这些玩具小人把小南的眼镜藏了起来。

小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。

如下图:这时告诉小南一个谜题:“眼镜藏在我左数第3 个玩具小人的右数第1 个玩具小人的左数第2 个玩具小人那里。

”小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向。

小南一边艰难地辨认着玩具小人,一边数着:“朝内,左数第3 个是。

“朝外,右数第1 个是。

“朝外,左数第2 个是。

“所以眼镜藏在这里!”虽然成功找回了眼镜,但小南并没有放心。

如果下次有更多的玩具小人藏他的眼镜,或是谜题的长度更长,他可能就无法找到眼镜了。

所以小南希望你写程序帮他解决类似的谜题。

这样的谜题具体可以描述为:有n 个玩具小人围成一圈,己知它们的职业和朝向。

现在第 1个玩具小人告诉小南一个包含m 条指令的谜题,其中第i 条指令形如“左数/右数第个玩具小人”。

你需要输出依次数完这些指令后,到达的玩具小人的职业。

【输入格式】从文件中读入数据。

输入的第一行包含两个正整数,表示玩具小人的个数和指令的条数。

NOIP2018提高组复赛试题

NOIP2018提高组复赛试题
度减少1。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为0。 春春希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变
为0。 【输入格式】
输入文件包含两行,第一行包含一个整数 n,表示道路的长度。
第二行包含 n 个整数,相邻两数间用一个空格隔开,第 i个整数为d;。
【输出格式】
【输入格式】
输入文件的第一行包含一个整数 T,表示数据的组数。接下来按照如下格式分别给
出T组数据。
每组数据的第一行包含一个正整数 n。接下来一行包含 n 个由空格隔开的正整数
a[i]。
【输出格式】
输出文件共有T行,对于每组数据,输出一行一个正整数,表示所有与(n,a)等
价的货币系统(m,b)中,最小的 m。
6了

功9
≤5
≤10 ≤15
≤1000
=1
≤n-1
=1

愿是

≤300




≤50,00

≤1000

否 是

10 ≤300

1 ≤50,000
12
13
14
15
≤50
≤200 ≤n-1 否
是1617≤1,000否18 19
≤30,00

20 ≤5000
其中,"分支不超过3"的含义为∶每个路口至多有3条道路与其相连。
n 【数据规模与约定】
测试点 己 车 测1试1点

”句34
67
9各
10
=2
12
13
14
=3
≤100
15
16
=4

NOIP2012提高组复赛试题

NOIP2012提高组复赛试题

CCF全国信息学奥林匹克联赛(NmP2012)复赛提高组day22. 1 ·同余方程〖问题描述〗求关于的同余方程三1 (mod句的最小正整数解。

输入〗输入文件为mod.ino输入只有一行,包含两个正整数用一个空格隔开输出〗输出文件为mod.outo输出只有一行,包含一个正整数№即最小正整数解。

输入数据保证一定有解。

〖输入输出样例〗对于40%的数据,2 L000:对于60%的数据,2 50,000,000:对于100%的数据,2,2,000,000,000。

2 ·借教室 (classroom. cpp/c/pas)问题描述〗在大学期间,经常需要租借教室。

大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。

教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。

面对海量租借教室的信息,我们自然希望编程解决这个问题。

我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。

共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借dj个教室。

我们假定,租借者对教室的大小、地点没有要求。

即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。

借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。

如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。

这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。

现在我们需要知道,是否会有订单无法完全满足。

如果有,需要通知哪一个申请人修改输入〗输入文件为classroom.in第一行包含两个正整数n,m,表示天数和订单的数量。

第二行包含n个正整数,其中第i个数为ri,表示第i天可用于租借的教室数量。

接下来有m行,每行包含三个正整数dJ,s],t],表示租借的数量,租借开始、结束分别在第几天。

山东2011——2012年NOIP提高组一等奖分布表-莱阳第九中学

山东2011——2012年NOIP提高组一等奖分布表-莱阳第九中学
选材广泛,多途径,一边辅导一边筛选 辅导时间合理安排 前期教师讲解,后期自主学习,考前集训
六、交流学习
1、山东省夏令营 2、培训机构 3、论坛 4、在线题库
七、资料
NOI官方网站: 山东计算机学会: 信息学初学者之家:/bbs 信息学奥林匹克竞赛网络平台: 中小学电脑报·NOI导刊/web/Noi.aspx
1.结构化程序设计的基本概念 2.阅读理解程序的基本能力 3.具有将简单问题抽象成适合计算机解决的模型的基本能力 4.具有针对模型设计简单算法的基本能力 5.程序流程描述(自然语言/伪码/NS图/其他) 6.程序设计语言(PASCAL/C/C++)- 2003仍允许BASIC
1.初等算法(计数、统计、数学运算等) 2.排序算法(冒泡法、插入排序、合并排序、快速排序) 3.查找(顺序查找、二分法) 4.回溯算法
中国计算机学会数次向教育部提出竞赛保送加分制度的改革方案。
2009年媒体数次爆光高考加分舞弊事件,2009被称为“加分年”。
2010年教育部出台教育发展规划的草案,要扩大高校的自主招生。
2012年中国计算机学会又通报三个省份因作弊判0分::江西省12名选手(来自3 所学校)、陕西省18名选手(来自5所学校)、山东省4名选手(来自4所学校)。
11月第三个周,周五全天报到,抽签,周五晚领队教练会议,提高组30分钟试机。 周六上午提高组(身份证)复赛,下午普及组复赛,周日上午提高组复赛,每天的测试 数据按时上传CCF。
8-10天后,ccf公布将提高组成绩。对成绩有异议的,一般在公布4天内提出申诉。 申诉期结束4天后公布一等奖全国最低分数线和各省获奖名单。
获奖年级 高二 高二 高二 高一 高三 高三 高一 高三 高一
奖项 二等奖 二等奖 二等奖 二等奖 一等奖 一等奖 二等奖 二等奖 二等奖

最新第22届全国青少年信息学奥林匹克联赛noip提高组试题day1

最新第22届全国青少年信息学奥林匹克联赛noip提高组试题day1

精品文档第22届全国青少年信息学奥林匹克联赛CCF-NOIP-2016提高组(复赛)第一试竞赛时间:2016年11月19日8:30〜12:001.文件名(程序名和输入输出文件名)必须使用英文小写。

2.除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。

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

4.全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) Ⅱ X2 240 processor 2.8GHz,内存4G,上述时限以此配置为准。

5.只提供Linux格式附加样例文件。

6.评测在NOI Linux下进行。

7.编译时不打开任何优化选项。

玩具谜题(toy)【问题描述】小南有一套可爱的玩具小人,它们各有不同的职业。

有一天,这些玩具小人把小南的眼镜藏了起来。

小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。

如下图:这时singer告诉小南一个谜题:“眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里。

”小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向。

小南一边艰难地辨认着玩具小人,一边数着:“singer”朝内,左数第3个是archer。

“archer”朝外,右数第1个是thinker。

“thinker”朝外,左数第2个是writer。

“所以眼镜藏在writer这里!”虽然成功找回了眼镜,但小南并没有放心。

如果下次有更多的玩具小人藏他的眼镜,或是谜题的长度更长,他可能就无法找到眼镜了。

所以小南希望你写程序帮他解决类似的谜题。

这样的谜题具体可以描述为:有n个玩具小人围成一圈,已知它们的职业和朝向。

现在第1个玩具小人告诉小南一个包含m条指令的谜题,其中第i条指令形如“左数/右数第s i个玩具小人”。

noip提高组试题dayday

noip提高组试题dayday

CCF全国信息学奥林匹克联赛(NOIP2017)复赛提高组day1(请选手务必仔细阅读本页内容)1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、全国统一评测时采用的机器配置为:CPUAMDAthlon(tm)IIx2240processor,,内存4G,上述时限以此配置为准。

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

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的NOILinux下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑c/pas)小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。

每种金币小凯都有无数个。

在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。

现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

【输入格式】输入文件名为。

输入数据仅一行,包含两个正整数a和b,它们之间用一个空格隔开,表示小凯手中金币的面值。

【输出格式】输出文件名为。

输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

【输入输出样例1】见选手目录下的math/和math/。

【输入输出样例1说明】小凯手中有面值为3和7的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11的物品,其中最贵的物品价值为11,比11贵的物品都能买到,比如:12=3*4+7*013=3*2+7*114=3*0+7*215=3*5+7*0……【输入输出样例2】见选手目录下的math/和math/。

【数据规模与约定】对于30%的数据:1≤a,b≤50。

对于60%的数据:1≤a,b≤10,000。

对于100%的数据:1≤a,b≤1,000,000,000。

【问题描述】2.时间复杂度c/pas)小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序,于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。

NOIP2013提高组复赛试题

NOIP2013提高组复赛试题

CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(circle.cpp/c/pas)【问题描述】n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。

按照顺时针方向给 n 个位置编号,从 0 到 n-1。

最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。

游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n −m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。

现在,一共进行了10^k 轮,请问x 号小伙伴最后走到了第几号位置。

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

输入共1 行,包含4 个整数n、m、k、x,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <m <n ,0 ≤ x ≤ n,0 < k< 109。

2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,997 取模的结果。

NOIP2012提高组复赛试题

NOIP2012提高组复赛试题

day1 T1:Vigenère 密码(vigenere.cpp/c/pas)【问题描述】16世纪法国外交家Blaise de Vigenère 设计了一种多表密码加密算法——Vigenère 密码。

Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。

在密码学中,我们称需要加密的信息为明文,用M 表示;称加密后的信息为密文,用C 表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k 。

在Vigenère 密码中,密钥k 是一个字母串,k=k 1k 2…k n 。

当明文M=m 1m 2…m n 时,得到的密文C=c 1c 2…c n ,其中c i =m i ®k i ,运算®的规则如下表所示:【输入】输入文件名为vigenere.in 。

输入共2行。

第一行为一个字符串,表示密钥k ,长度不超过100,其中仅包含大小写字母。

第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。

®【输出】输出文件名为vigenere.out。

输出共1行,一个字符串,表示输入密钥和密文所对应的明文。

对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。

day1 T2:国王游戏(game.cpp/c/pas)【问题描述】恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。

首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。

然后,让这n位大臣排成一排,国王站在队伍的最前面。

排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。

国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。

NOIP2021提高组复赛试题

NOIP2021提高组复赛试题

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

假设是两个人出拳一样,那么不分输赢。

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

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

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

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

表一石头剪子布升级版输赢关系此刻,小A和小B尝试玩这种升级版的猜拳游戏。

已知他们的出拳都是有周期性规律的,但周期长度没必要然相等。

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

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

现请你统计N次猜拳终止以后两人的得分。

【输入】输入文件名为。

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

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

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

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

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

【输出】输出文件名为。

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

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

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

山东多校联合模拟赛day1
注意事项:
1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、C/C++使用printf函数输出64位有符号整数变量,请使用printf(“%lld”)
4、请各学校自己负责强调比赛纪律,避免讨论算法、搜题解、粘模板等行为,维护公平的比赛环境。

5、评测机fpc版本:2.4.4,gcc、g++版本:4.7.0。

对于pascal选手,可以使用math库。

对于C++选手,可以使用STL。

1.矩形计数
(rect.cpp/c/pas)
【问题描述】
给出圆周上的N个点,请你计算出以这些点中的任意四个为四个角,能构成多少个矩形。

点的坐标是这样描述的,给定一个数组v[1..N],假设圆心为(0,0),圆的周长C=∑v[1..N] ,第一个点坐标为(0,C/(2π))。

从第一个点开始,顺时针沿圆周走v1个单位长度,此时坐标为第二个点的坐标,再走v2个单位长度,此时为第三个点的坐标,当走完v1,v2..vi 个距离后,为第i+1个点的坐标(全过程都是沿圆周顺时针)。

特别的,走完v1,v2..vn个距离后,就会回到第一个点。

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

输入共N+1行。

第一行为正整数N。

接下来N行每行一个正整数。

其中第i+1行表示的是v[i]。

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

输出共1行,一个整数,表示能构成的矩形的个数。

【输入输出样例说明】
如上图。

【数据范围】
对于100%的数据,有N<=20,V数组中的所有元素的值<=100。

2.祖先
(ancestor.cpp/c/pas)
【问题描述】
任何一种生物的DNA都可以表示为一个由小写英文字母组成的非空字符串。

科学家发现,所有的生物都有可能发生变异。

所谓变异,就是子代的DNA串与父代的DNA串有差异。

每次变异,DNA串中恰好有一个字符会变成两个任意的字符。

一共有n种可能的变异。

变异ai->bici表示字符ai有可能变异为两个字符bici。

详细来说,就是删掉一个字符ai,之后在原来ai的位置处,插入bi,ci两个字符(注意字符bi必须在ci的前面)。

每种变异都有可能发生任意多次。

可以发现,每变异一次,DNA串的长度会加1。

如果有一种生物a,他的DNA串是s1,另外存在一种生物b,他的DNA串是s2。

如果s2可以通过若干次变异变为s1,那么生物b就被叫做生物a的祖先。

现在,给定一种生物,他的DNA串是s。

请找出他的一个祖先,且这个祖先的DNA串尽量短。

【输入】
输入文件ancestor.in,共n+2行。

第一行包含一个非空字符串s。

第二行含有一个整数n,表示所有可能的变异。

接下来n行,每行描述一种可能的变异,按照ai->bici的格式。

s,ai,bi,ci仅包含小写英文字母。

请注意:一种变异可能出现多次。

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

输出只有一行,一个整数,表示祖先DNA串的最短长度。

【输入输出样例1】
【数据范围】
对于30%的数据,s的长度<=5,N <= 3;
对于100%的数据,s的长度<=50,N <= 50
3.Formula 1
(f1.cpp/c/pas)
【问题描述】
F1,中文全称为一级方程式锦标赛,是最高级的方程式赛车比赛,现在你作为一名选手参加了一场F1的比赛,比较特殊地,本次比赛是在一个N个点M条边的无向图上举行的。

起点是S,终点是T,每条边长度为1公里,赛车每行驶1公里耗油1个单位,途中共有k个加油站,每经过加油站时,可以把油加满,但你的赛车设计顾问告诉你,油箱容量越大,赛车跑的就越慢。

为了追求最快的速度,在能顺利到达终点,不会中途没油的前提下,你希望最小化油箱的容量(注意,虽然油箱变小可能导致路径变长,但我们只关心最小化的油箱)。

【输入】
输入文件f1.in。

第一行一个正整数T表示测试数据组数,每组数据格式如下:
第一行三个整数,N,M,K,表示无向图的点数,边数,加油站数。

第二行K个正整数i1,i2..ik表示这些点上有加油站(可能重复,保证至少一个加油站在S点)。

接下来M行,每行两个正整数Bi,Ei表示有一条连接(Bi,Ei)的双向边(可能有重边和自环)。

最后一行两个正整数S,T表示起点、终点。

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

对于每组数据,如果没法到达终点,输出-1,否则输出最小化的油箱容量。

【输入输出样例1】
【数据范围】
对于30%的数据,N<=200,M<=2000。

对于60%的数据,N<=1000,M<=10000。

对于100%的数据,1<=K,S,T<=N<=100000,1<=M<=150000,1<=T<=5。

相关文档
最新文档