精华内容
下载资源
问答
  • noip2018初赛试题及答案,包含c++和pascal普及组和提高组。
  • 文件内容: NOIP2013普及组C++试题 NOIP2013普及组C试题 NOIP2013普及组Pascal试题 NOIP2013普及组参考答案 NOIP2013提高组C++试题 NOIP2013提高组C试题 NOIP2013提高组Pascal试题 NOIP2013提高组参考答案
  • NOIP2008初赛普及组Pascal试题 点击免费下载 NOIP2008初赛普及组C试题 点击免费下载...NOIP2008初赛提高组Pascal试题 点击免费下载 NOIP2008初赛提高组C试题 点击免费下载 NOIP2008初赛提高组C++试题 点击免费下载 ...

    NOIP2008初赛普及组Pascal试题 点击免费下载

    NOIP2008初赛普及组C试题 点击免费下载

    NOIP2008初赛普及组C++试题 点击免费下载

    NOIP2008初赛提高组Pascal试题 点击免费下载

    NOIP2008初赛提高组C试题 点击免费下载

    NOIP2008初赛提高组C++试题 点击免费下载

    展开全文
  • =,其实同理推推也能蒙对,因为后缀表达式与前缀表达式类似,只是运算符位于操作数之后,个人建议系统的学习一下,不仅是为了初赛也是为了复赛=。= 大力推荐一篇博文:antineutrino博主写过一篇叫做《前缀、中缀、...

    d0c23bf87145669f56a65f012f596796.png

    368376bc51ad71cab3e00120fccfe1cb.png

    faf3c7eae6ac069423b1fda51360a8ca.png

    46cf93b51be1bcf99723080d48dc5462.png

    664e5a0b241aba213e1303c512b03ada.png

    4ffa018651940eb26b279b53325c9f3f.png

    5dd53f30dedf3a0c73b097322bdeb456.png

    af05cda6789ec9e275f15337350afd5b.png

    45265d3412a6edbcf0089294a8760190.png

    8b851826eb0d672dfb71f97f11c0fdb4.png

    f182044e4b004dd0f8e6dc42c0c03bac.png

    71ceea6c1073acb9e608076d42001eab.png

    6534823e5e4c07bf1d9d800ed6edca50.png

    f12edddfe29022cb03812839d6c1bd3b.png

    d5bf6110ad734dcf26b0d24d2382ad6e.png

    5915ac19036dd40112e050ab32d3fbf3.png

    9309ca4c7cc0dd546fe9e463a2f1ed55.png

    b0c011112ed31b13f5b1dd1e8b501b52.png

    a4365142374353ac23f17ba49eb1f7c2.png

    14536a92b180d285e0acb42cf70716cd.png

    e8a8f4b14289de9485c405cdb57f4a66.png

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif答案及解析

    一、单选

    1、D

    蒙也是能蒙对的

    2、A

    注意,它问的是输出的第81个字符,不是按的,所以选B的童鞋好好读题=w=

    依旧看做6个一组,81 div 6=13;易知奇数组是大写,偶数组是小写,所以显然是大写=w=;

    然后再关注输出的是哪个字母,输出的看做5个一组,81 mod 5=1;所以是A

    于是回来说的时候还有一种蒙题大法:

    你看看,四个选项,只有A和D是a的大小写,所以不是A就是D,再看看,ABC都是大写,所以不可能正确答案是小写,所以一定是A

    3、B

    送分题

    4、B

    送分的进制转换=w=,如果你做了前几年的题,你会发现有一道类似题,只是让转成16进制,所以那些看都不看就选A的.....自罚吧=。=

    5、B

    这个随便推推就行了,D是出不来的(至少也是nlogn)

    6、B

    前些年考过前缀表达式于是几年来了个后缀表达式=。=,其实同理推推也能蒙对,因为后缀表达式与前缀表达式类似,只是运算符位于操作数之后,个人建议系统的学习一下,不仅是为了初赛也是为了复赛=。=

    大力推荐一篇博文:antineutrino博主写过一篇叫做《前缀、中缀、后缀表达式》的文章

    7、B

    这个错的我就不能理解了=。=

    8、B

    注意它说的是非联通,所以选C的童鞋..=.=;完全图的边数是n*(n-1)/2;所以n=8;所以非联通,至少9个点

    9、B

    2^32B=4G

    10.D

    这题错的你后面还怎么做=。=

    11、B

    好吧,我做这题的时候脑残没多想,直接选的C,之前能选对全是间歇性机智症犯了=。=

    各种可能的放置情况如下:

    (7,0,0),

    (6,1,0),

    (5,2,0),(5,1,1),

    (4,3,0),(4,2,1),

    (3,3,1),(3,2,2),共8种;

    蒙题大法:你看啊,ACD不是7的倍数就是7是指数,只有B和7的倍数没有那么直接的关系,出题人肯定不会闲的给你出一个显然是不对的选项,所以一定选B

    0rz

    12、A

    就看Jacob和哪个相连,就绝对不能让他看见照片,就是不管怎么传都不能连上他们,然后恭喜你,心机成功了=。=

    13、C

    水过就好

    14、C

    其实我并不是很会算,所以就“代数试”,带个4、8什么的,算一下看看哪个选项对就行了=。=,要注意递推式中T前面的2,因为没有记忆化,所以要算2次,所以考场上我手滑就选B了=。=

    15、A

    这题不会的最后一道大题可以洗洗睡了=。=

    二、

    1、ABC

    考试的时候我就只知道AB肯定对,于是C就没有选,走出考场的时候听他们一说就感觉心里拔凉拔凉的,这就是教科书版的擦肩而过QAQ

    GPRS(General Packet Radio

    Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术

    ——来自百度百科

    2、A

    3、AB

    最近排序年年考,所以一定要注意=。=

    4、A

    这题画风不对啊=。=,不过是送分的我都欢迎=w=

    5、ABD

    =。=

    1、55

    这其实就是一个Fibonacci=。=

    第一种做法你可以从1*1的开始列举,然后横着开始列1*2……,如果上一位最后是0那就两种情况,是1的话就只有0一种情况,所以一般列到1*4或1*5的就能发现Fibonacci了=w=

    第二种就是动态规划,反正我不知道怎么弄,但是据说写出递推式来以后就会发现就是Fibonacci =。=

    然后就是注意全涂白也是一种染色方案,眼见一位位大神就跪在了54 orz

    2、3

    随便推推吧,根据第一个人你会发现最少也得分三次,然后我就拽着通用技术往下看,发现3个还真就满足了=w=

    1、6,5,4,3,2,1,  (倒序输出,逗号走丢的快用8分赎回来=A=)

    2、YES,NO,YES,

    (就是看冒号前面的字符串的字符有没有按照顺序在冒号后面的字符串中出现,关键是程序的理解,当然要是生推也是可以的=。=,

    逗号走丢的快用8分赎回来=A=)

    3、5(每年一道的递归题=.=)

    4、2 5(考试的时候没仔细看weight的运算,鬼知道我怎么写出来个2 6 =A=,那些写5

    2 的童鞋....=。=)

    五、完善程序

    1.

    (1)会快排的人都知道。

    (2)模仿上面的previous的写法就行。

    (3)也是模仿上面的shorter写,但是顺序要调一下。

    (4)可以看出shorter就是与矮的人的身高差,higher就是与高的人的身高差,然后根据题目就可以看出来了。

    (5)还是模仿上面的next写。

    2.自己上网找SPFA,会了就不难,如果不熟悉SPFA也能写出来几个空。

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    96277dc016aff35631984e83f0e5b208.gif

    --end--

    声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com

    展开全文
  • NOIP初赛试题(提高组C语言)第十届(2004)三.问题求解( 共 2 题,每题 5 分,共计 10 分 )1.75 名儿童到游乐场去玩。他们可以骑旋转木马,坐滑行铁道,乘宇宙飞船。已知其中 20 人这三种东西都玩过, 55 人至少...

    NOIP初赛试题(提高组C语言)

    第十届(2004)

    三.问题求解( 共 2 题,每题 5 分,共计 10 分 )

    1.75 名儿童到游乐场去玩。他们可以骑旋转木马,坐滑行铁道,乘宇宙飞船。已知其中 20 人这三种东西都玩过, 55 人至少玩过其中的两种。若每样乘坐一次的费用是 5 元,游乐场总共收入 700 ,可知有 ???? 名儿童没有玩过其中任何一种。

    分析与解:已知总人数为75,总金额是700,玩3项的人数是20,花费的金额是5*3*20=300,玩2项的人数是55-20=35,花费的金额是5*2*35=350,剩余金额是700-300-350=50,只能玩50/5=10项次,即玩1项的人数是10,所以玩0项的人数是:75-20-35-10=10

    总共

    玩3项

    玩2项

    玩1项

    玩0项

    人数

    75

    20

    35

    金额

    700

    300

    350

    0

    2.已知 a,?b,?c,?d,?e,?f,?g 七个人中, a 会讲英语; b 会讲英语和汉语; c 会讲英语、意大利语和俄语; d 会讲汉语和日语; e 会讲意大利语和德语; f 会讲俄语、日语和法语; g 会讲德语和法语。能否将他们的座位安排在圆桌旁,使得每个人都能与他身边的人交谈?如果可以,请以“ a?b ”开头写出你的安排方案: ?????????? 。

    .a-b-d-f

    a-b-d-f

    c-e-g-f

    g-e-c-f

    答: a b d f g e c

    第十一届(2005)

    三.问题求解(请在空格处填上答案,每空5分,共计10分)

    1.将数组{32, 74, 25, 53, 28, 43, 86, 47}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换 次。

    32,74,25,53,28,43,86,47

    ① 25,74,32,53,28,43,86,47

    ② 25,28,32,53,74,43,86,47

    ③ 25,28,32,43,74,53,86,47

    ④ 25,28,32,43,47,53,86,74

    ⑤ 25,28,32,43,47,53,74,86

    2.取火柴游戏的规则如下:一堆火柴有N根,A、B两人轮流取出。每人每次可以取1根或2根,最先没有火柴可取的人为败方,另一方为胜方。如果先取者有必胜策略则记为1,先取者没有必胜策略记为0。当N分别为100,200,300,400,500时,先取者有无必胜策略的标记顺序为 (回答应为一个由0和/或1组成的字符串)。

    分析与解:当火柴的根数为3或3的整数倍时,先取者没有必胜的策略;而当火柴的根数不为3的整数倍时,先取者有必胜的策略:取后使得剩余火柴的根数为3的整数倍。

    所以答案为11011

    相似的游戏:A、B两人轮流往同一储蓄罐存钱并记录每次存入的金额,每人每次可存入的金额为1元至5元间的任一整数(包括1和5),谁某次存完钱后使得储蓄罐里的总金额大于等于100即获胜利(获得储蓄罐里所有的存钱的奖励)。若让你参加该游戏并为第一个存钱者,你有必胜的策略吗?

    第十二届(2006)

    三.问题求解(共 2 题,每题 5 分,共计 10 分)

    1.将 2006 个人分成若干不相交的子集,每个子集至少有 3 个人,并且:

    (1)在每个子集中,没有人认识该子集的所有人。

    (2)同一子集的任何 3 个人中,至少有 2 个人互不认识。

    (3)对同一子集中任何 2 个不相识的人,在该子集中恰好只有 1 个人认识这两个人。 则满足上述条件的子集最多能有___________个?

    分析:要使子集数最多,每一子集的人数应最少。每一子集的人数为3,不符合要求,为4也不符合要求,为5可符合要求。

    2.将边长为 n 的正三角形每边 n 等分,过每个分点分别做另外两边的平行线,得到若干个正三角形, 我们称为小三角形。正三角形的一条通路是一条连续的折线,起点是最上面的一个小三角形,终点是最下面一行位于中间的小三角形。在通路中,只允许由一个小三角形走到另一个与其有公共边的且位于同一行或下一行的小三角形,并且每个小三角形不能经过两次或两次以上(图中是 n=5 时一条通路的例子)。设 n=10,则该正三角形的不同的通路的总数为_____________。

    分析与解:如果n=2,存在的不同的通路总数为1

    如果n=3,存在的不同的通路总数为2=1*2=2!

    如果n=4,存在的不同的通路总数为6=1*2*3=3!

    如果n=5,存在的不同的通路总数为24=1*2*3*4=4!

    ……

    如果n=10,存在的不同的通路总数为9!

    第十三届(2007)

    三.问题求解(共2 题,每题5 分,共计10 分)

    展开全文
  • noip2016提高初赛试题答案C++
  • NOIP2018提高初赛试题答案C++
  • NOIP2014提高初赛试题答案C++
  • NOIP2013提高初赛试题答案C++
  • NOIP2012提高初赛试题答案C++
  • NOIP2011提高初赛试题答案C++
  • NOIP2010提高初赛试题答案C++
  • NOIP2007 初赛试题提高组C)

    千次阅读 2008-09-21 16:16:00
    NOIP2007 初赛试题提高组C) 第十三届全国青少年信息学奥林匹克联赛初赛试题 一、单项选择题(共10 题,每题1.5 分,共计15 分。每题有且仅有一个正确答案)。 1. 在以下各项中,( )不是CPU 的组成部分。 A. ...

    NOIP2007 初赛试题(提高组C

    第十三届全国青少年信息学奥林匹克联赛初赛试题

     

    一、单项选择题(共10 题,每题1.5 分,共计15 分。每题有且仅有一个正确答案)。

    1. 在以下各项中,( )不是CPU 的组成部分。

    A. 控制器   B. 运算器    C. 寄存器 

    D. 主板    E. 算术逻辑单元(ALU)

    2.在关系数据库中,存放在数据库中的数据的逻辑结构以( )为主。

    A. 二叉树   B. 多叉树   C.哈希表    D. B+E.二维表

    3.在下列各项中,只有( )不是计算机存储容量的常用单位。

    A. Byte    B. KB    C.MB   D.UB         E.TB

    4ASCII 码的含义是( )。

    A. 二—十进制转换码   B. 美国信息交换标准代码    C. 数字的二进制编码   D. 计算机可处理字符的唯一编码    E. 常用字符的二进制编码

    5.在C 语言中,表达式23|2^5 的值是(

    A. 23    B. 1    C .18   D.32    E.24

    6.在C 语言中,判断a 等于0 b 等于0 c 等于0 的正确的条件表达式是(

    A. !((a!=0)||(b!=0)||(c!=0))

    B. !((a!=0)&&(b!=0)&&(c!=0))

    C. !(a==0&&b==0)||(c!=0)

    D. (a=0)&&(b=0)&&(c=0)

    E. !((a=0)||(b=0)||(c=0))

    7.地面上有标号为ABC 3 根细柱,在A 柱上放有10 个直径相同中间有孔的圆盘,从上到下依次编号为123,……,将A 柱上的部分盘子经过B 柱移入C 柱,也可以在B 柱上暂存。如果B 柱上的操作记录为:“进,进,出,进,进,出,出,进,进,出,进,出,出”。那么,在C 柱上,从下到上的盘子的编号为( )。

    A. 2 4 3 6 5 7    B. 2 4 1 2 5 7            C. 2 4 3 1 7 6 D. 2 4 3 6 7 5             E. 2 1 4 3 7 5

    8. 与十进制数17.5625 对应的8 进制数是( )。

    A. 21.5625       B. 21.44            C. 21.73           

    D. 21.731          E. 4 个答案都不对

    9.欧拉图G 是指可以构成一个闭回路的图,且图G 的每一条边恰好在这个闭回路上出现一次(即一笔画成)。在以下各个描述中,不一定是欧拉图的是( )。

    A. G 中没有度为奇数的顶点

    B. 包含欧拉环游的图(欧拉环游是指通过图中每边恰好一次的闭路径)

    C. 包含欧拉闭迹的图(欧拉迹是指通过图中每边恰好一次的路径)

    D. 存在一条回路,通过每个顶点恰好一次

    E. 本身为闭迹的图

    10. 一个无法靠自身的控制终止的循环称为“死循环”,例如,在C 语言程序中,语句“while(1)

    printf(*);”就是一个死循环,运行时它将无休止地打印*号。下面关于死循环的说法中,只有(

    是正确的。

    A. 不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环,因而, 任何编译系统都不做死循环检验

    B.有些编译系统可以检测出死循环

    C. 死循环属于语法错误,既然编译系统能检查各种语法错误,当然也应该能检查出死循环

    D. 死循环与多进程中出现的“死锁”差不多,而死锁是可以检测的,因而,死循环也是可以检测的

    E. 对于死循环,只能等到发生时做现场处理,没有什么更积极的手段

    二、不定项选择题(共10 题,每题1.5 分,共计15 分。每题正确答案的个数大于或等于1。多选或少选均不得分)。

    11. A=B=trueC=D=false,以下逻辑运算表达式值为真的有( )。

    A. (¬ AB)(CDA)  B. ¬ (((AB)C)D)

    C. A(BCD)D                 D. (A(DC)) B

    12. 命题“PQ”可读做P蕴涵Q,其中PQ 是两个独立的命题。只有当命题P成立而命题Q不成立时, 命题“PQ”的值为false,其他情况均为true。与命题“PQ”等价的逻辑关系式是( )。

    A.       ¬ PQ              B. PQ 

    C. ¬ (PQ)           D. ¬ (¬ QP)

    13. (2070)16 + (34)8 的结果是( )。

    A. (8332)10                        B. ( 208C )16             

    C. (100000000110)2        D. (20214)8

    14. 已知7 个结点的二叉树的先根遍历是1 2 4 5 6 3 7(数字为结点的编号,以下同),后根遍历是4 6 5 2 7 3 1,则该二叉树的可能的中根遍历是(

    A. 4 2 6 5 1 7 3         B. 4 2 5 6 1 3 7        

    C. 4 2 3 1 5 4 7         D. 4 2 5 6 1 7 3

    15. 冗余数据是指可以由其他数据导出的数据,例如,数据库中已存放了学生的数学、语文和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。冗余数据往往会造成数据的不一致,例如,上面4 个数据如果都是输入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。下面关于冗余数据的说法中,正确的是( )。

    A. 应该在数据库中消除一切冗余数据

    B. 与用高级语言编写的数据处理系统相比,用关系数据库编写的系统更容易消除冗余数据

    C. 为了提高查询效率,在数据库中可以适当保留一些冗余数据,但更新时要做相容性检验

    D. 做相容性检验会降低效率,可以不理睬数据库中的冗余数据

    16.在下列各软件中,属于NOIP 竞赛(复赛)推荐使用的语言环境有( )。

    A. gcc       B. g++      C. Turbo C       D.free pascal

    17. 以下断电之后仍能保存数据的有( )。

    A. 硬盘     B. ROM   C. 显存   D. RAM

    18. 在下列关于计算机语言的说法中,正确的有( )。

    A. 高级语言比汇编语言更高级,是因为它的程序的运行效率更高

    B. 随着PascalC等高级语言的出现,机器语言和汇编语言已经退出了历史舞台

    C. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上

    D. C是一种面向过程的高级计算机语言

    19. 在下列关于算法复杂性的说法中,正确的有( )。

    A. 算法的时间复杂度,是指它在某台计算机上具体实现时的运行时间

    B. 算法的时间复杂度,是指对于该算法的一种或几种主要的运算,运算的次数与问题的规模之间的函数关系

    C. 一个问题如果是NPC类的,就意味着在解决该问题时,不存在一个具有多项式时间复杂度的算法。 但这一点还没有得到理论上的证实,也没有被否定

    D. 一个问题如果是NP类的,与C有相同的结论

    20. 20年来,许多计算机专家都大力推崇递归算法,认为它是解决较复杂问题的强有力的工具。在下列关于递归算法的说法中,正确的是( )。

    A. 1977年前后形成标准的计算机高级语言“FORTRAN 77 禁止在程序使用递归,原因之一是该方法可能会占用更多的内存空间

    B. 和非递归算法相比,解决同一个问题,递归算法一般运行得更快一些

    C. 对于较复杂的问题,用递归方式编程往往比非递归方式更容易一些

    D. 对于已经定义好的标准数学函数sin(x),应用程序中的语句“y=sin(sin(x));”就是一种递 归调用

    三.问题求解(共2 题,每题5 分,共计10 分)

    1.给定n 个有标号的球,标号依次为12,…,n。将这n 个球放入r 个相同的盒子里,不允许有空盒,其不同放置方法的总数记为S(n,r)。例如,S(4,2)=7,这7 种不同的放置方法依次为{(1),(234)}, {(2),(134)}, {(3),(124)}, {(4),(123)}, {(12),(34)}, {(13),(24)}, {(14),(23)}。当n=7,r=4 时,S(7,4)= _____________

    2N 个人在操场里围成一圈,将这N 个人按顺时针方向从1 N 编号,然后,从第一个人起,每隔一个人让下一个人离开操场,显然,第一轮过后,具有偶数编号的人都离开了操场。依次做下去,直到操场只剩下一个人,记这个人的编号为J(N) ,例如,J(5)=3 J(10)=5 ,等等。则J(400)=______________

    (提示:对N= 2m +r 进行分析,其中0r< 2m )。

    四.阅读程序写结果(共4 题,每题8 分,共计32 分)

    1#include <stdio.h>

    int main()

    {int i,p[5],q[5],x,y=20;

    for(i=0;i<=4;i++)

    scanf("%d", &p[i]);

    q[0]=(p[0]+p[1])+(p[2]+p[3]+p[4])/7;

    q[1]=p[0]+p[1]/((p[2]+p[3])/p[4]);

    q[2]=p[0]*p[1]/p[2];

    q[3]=q[0]*q[1];

    q[4]=q[1]+q[2]+q[3];

    x=(q[0]+q[4]+2)-p[(q[3]+3)%4];

    if(x>10)

    y+= (q[1]*100-q[3])/(p[p[4]%3]*5);

    else

    y+=20+(q[2]*100-q[3])/(p[p[4]%3]*5);

    printf("%d,%d/n", x,y);

    return 0;

    }

    /*注:本例中,给定的输入数据可以避免分母为0 或数组元素下标越界。*/

    输入:6 6 5 5 3

    输出:_______________

    2#include <stdio.h>

    void fun(int *a,int *b)

    {int *k;

    k=a; a=b; b=k;

    }

    main( )

    {int a=3,b=6,*x=&a,*y=&b;

    fun(x,y);

    printf("No.1: %d,%d ",a,b);

    fun(&a,&b);

    printf("No.2: %d,%d/n",a,b);

    }

    输出:____________________

    3#include "math.h"

    #include "stdio.h"

    main()

    {int a1[51]={0};

    int i,j,t,t2,n=50;

    for (i=2;i<=sqrt(n);i++)

    if(a1[i]==0)

    {t2=n/i;

    for(j=2;j<=t2;j++) a1[i*j]=1;

    }

    t=0;

    for (i=2;i<=n;i++)

    if(a1[i]==0)

    {printf("%4d",i); t++;

    if(t%10==0) printf("/n");

    }

    printf("/n");

    }

    输出: ______________________________________

    ______________________________________

    4. #include "stdio.h"

    char ch[]={'q','A','S','O','R','T','E','X','A','M','P','L','E'};

    int n=12;

    void shift(int k, int n)

    {char v;

    int j;

    v=ch[k]; j=k+k;

    while (j<=n)

    {if((j<n) && (ch[j]<ch[j+1])) j++;

    if (v<ch[j])

    { ch[j/2]=ch[j]; j*=2; }

    else

    return;

    ch[j/2]=v;

    }

    }

    void hpsrt(void)

    {int k;

    char tmp;

    for (k=n/2; k>0; k--) shift(k,n); /* 建堆*/

    printf("No.1: ");

    for(k=1; k<=n; k++) putchar(ch[k]);

    putchar('/n');

    for (k=n; k>0; k--)

    { tmp=ch[1]; ch[1]=ch[k]; ch[k]=tmp;

    shift(1,k-1);

    }

    }

    main()

    {int k;

    hpsrt();

    printf("No.2: ");

    for(k=1; k<=n; k++) putchar(ch[k]);

    putchar('/n');

    }

    输出:______________________________________

    ______________________________________五.完善程序(5 空,每空2 分,后6 空,每空3 分,共28 )

    1.(格雷码,Gray Code

    格雷码是对十进制数的一种二进制编码。编码顺序与相应的十进制数的大小不一致。其特点是:对于两个相邻的十进制数,对应的两个格雷码只有一个二进制位不同。另外,最大数与最小数之间也仅有一个二进制位不同,以4 位二进制数为例,编码如下:

    十进制数格雷码十进制数格雷码

    0 0000 8 1100

    1 0001 9 1101

    2 0011 10 1111

    3 0010 11 1110

    4 0110 12 1010

    5 0111 13 1011

    6 0101 14 1001

    7 0100 15 1000

    如果把每个二进制的位看作一个开关,则将一个数变为相邻的另一个数,只须改动一个开关。因此, 格雷码广泛用于信号处理、数-模转换等领域。 下面程序的任务是:由键盘输入二进制数的位数n (n<16),再输入一个十进制数m(0m<2n),然 后输出对应于m 的格雷码(共n 位,用数组gr[]存放)。 为了将程序补充完整,你必须认真分析上表的规律,特别是对格雷码固定的某一位,从哪个十进制数 起,由0 变为1,或由1 变为0

    #include <stdio.h>

    main()

    {        int bound=1,m,n,i,j,b,p,gr[15];

    printf("input n,m/n");

    scanf("%d%d",&n,&m);

    for(i=1;i<=n;i++) bound= ;

    if(m<0||m>=bound)

    {        printf("Data error!/n");

    ;

    }

    b=1;

    for(i=1;i<=n;i++)

    {        p=0; b=b*2;

    for( ;j<=m;j++)

    if( )

    p=1-p;

    gr[i]=p;

    }

    for(i=n; )

    printf("%1d",gr[i]); /* "%1d" 中出现的是数字1,不是字母l */

    printf("/n");

    }

    2.(连续邮资问题)某国发行了n 种不同面值的邮票,并规定每封信最多允许贴m 张邮票,在这

    些约束下,为了能贴出{123,…,maxvalue}连续整数集合的所有邮资,并使maxvalue 的值最 大,应该如何设计各邮票的面值?例如,当n=5m=4 时,面值设计为{13111532},可使 maxvalue 达到最大值70(或者说,用这些面值的1 4 张邮票可以表示不超过70 的所有邮资,但无 法表示邮资71。而用其他面值的1 4 张邮票如果可以表示不超过k 的所有邮资,必有k70)。 下面是用递归回溯求解连续邮资问题的程序。数组x[1:n]表示n 种不同的邮票面值,并约定各元 素按下标是严格递增的。数组bestx [1:n]存放使maxvalue 达到最大值的邮票面值(最优解), 数组y[maxl]用于记录当前已选定的邮票面值x[1:i]能贴出的各种邮资所需的最少邮票张数。请将程 序补充完整。

    #include <stdio.h>

    #define NN 20

    #define maxint 30000

    #define maxl 500 /*邮资的最大值*/

    int n,m,bestx[NN],x[NN],y[maxl],maxvalue=0;

    void result()

    {输出结果:最大值:maxvalue 及最优解: bestx[1:n](略)

    }

    void backtrace(int i,int r)

    { int j,k,z[maxl];

    for(j=0;j<= ;j++)

    if(y[j]<m)

    for(k=1;k<=m-y[j];k++)

    if(y[j]+k<=y[ ])

    y[ ]=y[j]+k;

    while(y[r]<maxint) r++;

    if(i>n)

    {if(r-1>maxvalue)

    {maxvalue= ;

    for(j=1;j<=n;j++)

    bestx[j]=x[j];

    }

    return;

    }

    for(k=0;k<maxl;k++)

    z[k]=y[k];

    for(j= ;j<=r;j++)

    {x[i]=j;

    ;

    for(k=0;k<maxl;k++)

    y[k]=z[k];

    }

    }

    void main()

    {int j;

    printf("input n,m:/n");

    scanf(“%d%d”,&n,&m);

    for(j=1;j<maxl;j++)

    y[j]=maxint;

    y[0]=0; x[0]=0; x[1]=1;

    backtrace(2,1);

    result();

    }

     

     

     

     

     

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼boolfinish,hash[256],used[27];intn,stk[27];stringa,b,c;stringword;voidinit(){fin>>n>>a>>b>>...}voidoutsol(){inti,ans[...
  • NOIP2010提高初赛试题及解析.pdf
  • NOIP2013初赛提高组C++试题及答案
  • NOIP提高初赛试题及答案和解析过程汇总,整理更新(包含:2015年、2017年、2018年)!谨供参考!
  • NOIP2006提高初赛试题_C++,
  • NOIP2007初赛提高组PASCAL试题.pdf
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼boolfinish,hash[256],used[27];intn,stk[27];stringa,b,c;stringword;voidinit(){fin>>n>>a>>b>>...}voidoutsol(){inti,ans[...
  • NOIP2013提高初赛试题与答案(C语言) 竞赛时间:2013年10月13日14:30~16:30
  • noip2016提高组c++试题+简要解析,试题清楚可以打印~~~~
  • NOIP2007初赛NOIP2007初赛普及组...NOIP2007初赛提高组Pascal试题 点击免费下载 NOIP2007初赛提高组C试题 点击免费下载 NOIP2007初赛提高组C++试题 点击免费下载 NOIP2007复赛: NOIP2007复赛普及组 点击免费...
  • noip2007初赛提高试题及答案 部分试题: 一、 单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。 1. 在以下各项中,( )不是CPU的组成部分。 A. 控制器 B. 运算器 C. 寄存器 D. 主板 ...
  • 2008年全国中学生信息学奥林匹克竞赛高中组竞赛初赛笔试试题,文档清晰
  • 2005年全国中学生信息学奥林匹克竞赛高中组竞赛初赛笔试试题,文档清晰
  • 最新2009年全国中学生信息学奥林匹克竞赛高中组竞赛初赛笔试试题,文档清晰
  • 最新2006年全国中学生信息学奥林匹克竞赛高中组竞赛初赛笔试试题,文档清晰
  • NOIP2017提高初赛c++试题
  • NOIP2015提高初赛C++试题

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 359
精华内容 143
关键字:

noip提高初赛试题