竞赛真题
编程老头
这个作者很懒,什么都没留下…
展开
-
瑞士轮
背景在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于 1895 年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折衷,既保证了比赛的稳定性,又能使赛程不至于过长。问题描述2 n 名编原创 2013-02-19 22:16:07 · 809 阅读 · 0 评论 -
noip2012初赛-坐标统计
noip2012C-4-1(坐标统计)输入n个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。 样例输入:71 23 45 13 4-1 6-7-19-2-10cons原创 2015-08-23 17:29:23 · 2380 阅读 · 0 评论 -
noip2011初赛-大整数开方
noip2011C_4_2(大整数开方)输入一个正整数n(1constSIZE=200;typehugeint=recordlen:integer;num:array[1..SIZE] of integer;end;vars:string;i:integer;target,left,middle,right:hugeint;function add(a,b:原创 2015-08-23 17:27:32 · 1862 阅读 · 0 评论 -
noip2011初赛-子矩阵
noip2011C-4-1(子矩阵)输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标;若不存在输出“there is no answer”。 样例输入:3 31 234 567 892 25 68 9 样例输出:2 2constSIZE=50;varn1,m1,n2原创 2015-08-23 17:25:03 · 1568 阅读 · 0 评论 -
noip2010初赛-哥德巴赫猜想
2010C_4_1(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2的偶数都可写成两个质数之和,迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。试编写程序,验证任一大于2且不超过n的偶数都能写成两个质数之和。constsize=1000;varn,r,i,j,k,ans:integer;p:array[1..SIZE] of integer;tmp:boolean;原创 2015-08-23 17:23:23 · 1590 阅读 · 0 评论 -
noip2009初赛-国王放置
2009C-4-2(国王放置)在n*m的棋盘上放置k个国王,要求k个国王互相不攻击,有多少种不同的放置方法。假设国王放置在第(x,y)格,国王的攻击的区域是:(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1)。读入三个数n,m,k,输出答案。题目利用回溯法求解。棋盘行标号为0~n-1,列标号为0~m-1。原创 2015-08-23 17:21:49 · 3396 阅读 · 1 评论 -
noip2008初赛-找第K大的数
noip2008C_4_2(找第k大的数)给定一个长度为1,000,000的无序正整数序列,以及另一个数n(1≤n≤1000000),然后以类似快速排序的方法找到序列中第n大的数(关于第n大的数:例如序列{1,2,3,4,5,6}中第3大的数是4)vara:array[1..1000000]of integer;n,m,ans:longint;procedure swap(var a,原创 2015-08-23 17:19:00 · 2063 阅读 · 0 评论 -
noip2008初赛-字符串替换
noip2008C_4_1(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串S’由26个字母组成,它是a~z的任一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,即 S中的A用该字母的大写替换,S中的a用该字母的小原创 2015-08-23 17:17:09 · 1309 阅读 · 0 评论 -
noip2007初赛-棋盘覆盖
noip2007C_4_2(棋盘覆盖问题)在一个2k*2k个方格组成的棋盘中恰有一个方格与其他方格不同(图中标记为-1的方格),称之为特殊方格。现用L型(占3个小格)纸片覆盖棋盘上除特殊方格的所有部分,各纸片不得重叠,于是,用到的纸片数恰好是(4^k−1)/3。在下表给出的一个覆盖方案中,k=2,相同的3个数字构成一个纸片。下面给出的程序是用分治法设计的,将棋盘一分为四,依次处理左上角、右上角、左原创 2015-08-23 17:09:53 · 867 阅读 · 0 评论 -
noip2007初赛-求字符串的逆序
noip2007C_4_1(求字符串的逆序)下面的程序的功能是输入若干行字符串,每输入一行,就按逆序输出该行,最后键入-1 终止程序。typestr1=string[100];varline:str1;kz:integer;procedure reverse(var s:str1);vari,j:integer;t:char;begin i:=1; j:=lengt原创 2015-08-23 17:08:25 · 586 阅读 · 0 评论 -
noip2006初赛-完善程序第二题
noip2006C_4_2由键盘输入一个奇数P(P<100,000,000),其个位数字不是5,求一个整数S,使P×S =1111...1 (在给定的条件下,解S必存在)。要求在屏幕上依次输出以下结果:(1)S的全部数字。除最后一行外,每行输出50位数字。(2)乘积的数字位数。 例1:输入p=13,由于13*8547=111111,则应输出(1)8547(2)6 例2:输入原创 2015-08-23 17:06:37 · 1498 阅读 · 0 评论 -
noip2006初赛-全排列
noip2006C_4_1(全排列)下面程序的功能是利用递归方法生成从1到n(n 样例输入3样例输出(每行输出5个排列)123 132 213 231 321312program noip2006C_4_1;vari,n:integer;a:array[1..10] of integer;count:longint;procedure perm(k:i原创 2015-08-23 17:02:06 · 1543 阅读 · 0 评论 -
noip2005初赛-判断质数
noip2005C_4_1判断质数 题目描述:给出一个正整数,判断这个数是否是质数。 输入:一个正整数n(1≤n≤10000)。 输出:如果n是质数,输出“YES”;否则,输出“NO”。 输入样例:10 输出样例:NOvarn,i:integer;begin read(n); if n=2 then writeln原创 2015-08-23 17:00:11 · 585 阅读 · 0 评论 -
noip2005初赛-木材加工
noip2005C_4_2木材加工 题目描述:木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。 输入:第一行是两个正整数N和K(1≤原创 2015-08-23 16:56:49 · 2618 阅读 · 0 评论 -
noip2004初赛-三角形内切圆的面积
noip2004C_4_1三角形内切圆的面积题目描述:给出三角形三边的边长,求此三角形内切圆(如下图所示,三角形的内切圆是和三角形三边都相切的圆)的面积。 输入:三个正实数a、b、c(满足a+b>c,b+c>a,c+a>b), 表示三角形三边的边长。 输出:三角形内切圆的面积,结果四舍五入到小数点后面2位。 输入样例:3 4 5 输出样例:3原创 2015-08-23 16:52:34 · 1080 阅读 · 0 评论 -
2005年百度之星程序大赛初赛题目(连续正整数)
第一题(共四题100分):连续正整数(10分)题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:15=1+2+3+4+515=4+5+615=7+8请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。 输入数据:一个正整数,以命令行参数的形式提供给程序。输出数据:在标准输出上打印出符合题目描述的全部原创 2013-03-22 20:11:27 · 3398 阅读 · 1 评论 -
NOIP2008普及组参考答案和评分标准(PASCAL语言)
一、单项选择题:(每题1.5分) 1. A 2. B 3. C 4. C 5. B 6. D 7. C 8. D 9. A 10. B 11. D 12. A 13. B 14. B 15. B 16. A 17. B 18. A 19. B 20.原创 2013-03-02 12:26:02 · 606 阅读 · 0 评论 -
Hole
varn,m:integer;g:array[1..150,1..150] of integer;v,mv:integer;best:array [1..150,0..1] of double;{dijkstra}i,j,p1,p2:integer;nmin:real;min:array [1..150,0..1] of double;vis:array [1..150,0..原创 2013-03-09 22:01:52 · 479 阅读 · 0 评论 -
noip2009初赛-最大连续子段和
2009C-4-1(最大连续子段和)给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。var a:ar原创 2015-08-23 17:20:29 · 1397 阅读 · 0 评论