吉林大学ACM国际大学生程序设计竞赛简介

吉林大学ACM国际大学生程序设计竞赛简介
吉林大学ACM国际大学生程序设计竞赛简介

吉林大学ACM国际大学生程序设计竞赛简介

竞赛宗旨

ACM国际大学生程序设计竞赛是由位于美国的计算机协会组织的年度性竞赛,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事,它已成为国内外各高校展示实力、加强交流、相互促进、共同发展的广阔舞台。ACM/ICPC作为具有国际权威性和影响力的国际大学生程序设计竞赛,已成为衡量大学生程序设计能力和学校计算机学科水平的重要标准之一。

我校于2002、2003、2004、2005年参加亚洲预赛,分别在这八个赛区中取得学校排名第16、第17、第12、第9,第7、第18,第21,第17,共获得银奖2块、铜奖6块,竞赛成绩在不断稳步提高。

竞赛支持网站:https://www.360docs.net/doc/2215255933.html,(校外)

https://www.360docs.net/doc/2215255933.html,(校内)

竞赛联系地点:前卫南校区萃文楼501

竞赛交流平台:吉林大学BBS 牡丹园-电脑技术-算法版

https://www.360docs.net/doc/2215255933.html,/cgi-bin/bbsdoc?board=Algorithm

参赛对象

1、凡吉林大学在校本专科生均可报名参加。年级、专业不限。鼓励低年级同学参加。

2、比赛学生以个人身份参加,每人独立参赛。

3、参赛同学应在竞赛网站上注册参加热身赛,在报名时提供个人资料。

4、参赛同学应保证自己身份等资料的真实性。

5、以往学校代表队同学成绩不影响其他同学排名及奖励。

竞赛细则

1、选手在参赛时携带个人证件。

2、竞赛以上机为比赛方式。

3、竞赛中至少命题6题,至多命题10题,上机比赛时间为5个小时,中间不休息。

4、参赛选手可以携带诸如书籍、字典、手册、程序清单等文字性参考

资料。

5、参赛选手不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的磁盘或计算器)。

6、参赛选手不能携带任何类型的通讯工具,包括无线电接收器、移动电话等。

7、选手未解决全部题目不得提前离场

8、竞赛的预定时间为5小时,但当竞赛进行一定时间后,竞赛裁判可以因为出现不可预见的事件而调整比赛时间长度,一旦比赛时间长度发生改变,将会以及时并且统一的方式通告所有参赛选手。

9、当参赛选手出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛裁判取消参赛资格。

试题与交流

1、竞赛中至少命题6题,至多命题10题。题目的次序不代表任何含义,选手可以自由选择题目解答。

2、试题将以书面形式提供,每人一套,同时提供电子版。

3、在竞赛过程中,参赛选手不得和其他选手交流。

4、对于机器、环境等其他问题,选手可以与工作人员联系。系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。

5、对于试题本身的问题可以通过提交程序向裁判提问,裁判根据情况予以解答。裁判认为必要时,将会通知所有选手。

6、比赛的试题及与裁判之间的交流使用的语言为英语。与工作人员交流使用汉语。

竞赛评分

1、正确解答中等数量以上试题的选手会根据解题数目进行排名,解题数在中等数量以下的选手只发布解题数量,不进行排名。

2、在进行排名时,如果多人解题数量相同,则根据总用时加上惩罚时间进行排名。总用时和惩罚时间由每道解答正确的试题的用时之和加上惩罚时间之和而成。每道试题用时将从竞赛开始到试题解答被判定为正确为

止,期间每一次错误的运行将被加罚20分钟时间。未正确解答的试题不记时,对应的错误运行也不计入惩罚时间。

3、选手在比赛期间不能看到排名表和他人的成绩、解决的问题。

4、比赛中每一道题目对应一种颜色的气球(颜色的对应在试题中注明)。在选手正确解答出某道题目后,工作人员将会把对应颜色的气球插到此同学的位置旁。

5、比赛结束前一个小时内,将不再为正确的解答摆放气球。

6、请注意竞赛裁判决定解答提交是否正确需要一定的时间。

7、参赛选手在竞赛时由裁决软件系统随机确定座位。

竞赛环境和竞赛语言

1、竞赛语言包括C++、C和PASCAL。

2、每个参赛者使用一台计算机,所有参赛计算机的规格配置完全相同,选手使用MS VC++6语言环境,服务端配置同热身赛环境。注

3、选手的座位分布由组织者随机指派,在比赛之前确定,并通知选手。

4、吉林大学ACM/ICPC网站https://www.360docs.net/doc/2215255933.html,现提供一千余道练习题目以及在线自动判题系统,报名者可在本网站注册后进行练习,并参加热身赛。

5、试题的解答提交裁判称为运行,每一次运行会被判为正确或者错误,判决结果会立即通知参赛队伍。

竞赛评奖

比赛设一等奖,约3名;二等奖,约5名,三等奖,约10名。其他成绩较好的同学将获得纪念奖。往年学校代表队成员不影响新参赛同学排名得奖。

JOJ

JOJ(the JiLin University Online Judge System),吉林大学ACM 竞赛在线提交系统,建立于2002年12月18日,是吉林大学自己的程序设计在线提交与测试系统。经过近四年的发展,已经拥有上千道各种类型与难度的程序设计题目和完善的在线测试与积分系统,是吉林大学学生提高

动手能力的理想平台,也是学校ACM选手备战大赛的重要环节。

训练重点:基本算法、基本程序设计能力

基本算法

1、高精度计算。计算任意长位数的两数加减乘除四则运算。

参考书目:《国际大学生程序设计竞赛辅导教程》,郭嵩山,北京大学出版社

典型例题:1004 1386 1920 1949

2、数论算法。用欧几里得算法求两整数的GCD、LCM;求解模线性方程;中国余数定理;质因数分解等。

参考书目:《实用算法的分析与程序设计》,吴文虎,清华大学出版社典型例题:1019 1027 1062 1167

3、组合数学算法。生成集合的全排列(有或没有重复元素);生成集合的所有子集(有或没有重复元素);组合计数;递推关系;Polya定理等。

参考书目:《组合数学》,(美)Richard A. Brualdi,机械工业出版社典型例题:1026 1031 1175 1273

4、常用图论算法。最短路径(单源最短路径、指定两点间最短路径和任意两点间最短路径);无向图的最小生成树;求任意图的连通分量等。

参考书目:《算法设计技巧与分析》,(沙特)M. H. Alsuwaiyel,电子工业出版社

典型例题:1002 1016 1075 1831

5、计算几何算法。平面上,判断线段相交(两条或一组);求任意多边形面积;判断给定点是否在多边形内;求凸包的算法等。

参考书目:《计算几何-算法分析与设计》,周培德,清华大学出版社

典型例题:1053 1080 1173 1957

基本程序设计能力

1、熟练运用语言。C/C++常用函数;STL等

参考书目:《C++标准程序库》,(美)Nicolai M. Josuttis,华中科技大学出版社

2、模拟类

典型例题:1034 1035 1060 1086

3、搜索类。深度优先(剪枝);广度优先

典型例题:1024 1050 1073 1134

每年度吉林大学ACM代表队选拔及培训计划

选拔范围:

1、校内选拔赛的获奖者

2、此后网上竞赛成绩优秀者

3、JOJ做题数量和质量较高者

培训计划:

1、5-6月份,网上单人热身赛

2、暑假集训

3、8月份单人选拔

4、9月、10月组队训练

5、10月、11月参加分区赛

ACM/ICPC竞赛常见问题解答

比赛组织:

Q(Question):我能否携带字典、书籍和程序清单?

A(Answer):可以,建议至少携带一本英文字典。

Q:我能否携带光盘、软盘等存储介质?

A:不能。

Q:我能否携带计算器?

A:不能。

Q:是否提供模拟题?

A:本次比赛不直接提供模拟题,选手可以直接到吉林大学ACM站点的在线测试(JOJ)中作题(https://www.360docs.net/doc/2215255933.html,)。站点上的题目与本次比赛在风格、判决方式等方面基本类似,但难度上更高一些。

Q:如果我在比赛过程中对试题有疑问怎么办?

A:可以通过在线的对话系统询问裁判。但请使用英语。

Q:我问裁判的问题,别人能够看到么?

A:一般看不到,当裁判认为这个问题有共性时,可以发布给大家。

Q:在比赛过程中,我能否看到自己的成绩?

A:可以看到自己以前的所有提交过程,包括每次提交的结论和提交时间。但不能看到自己在整个赛场的排名。

Q:在比赛过程中,我能否看到别人的成绩?

A:除了根据气球判断别人解答出的问题外,不能直接看到排名表和别人成绩。

Q:我提交一个解答后,多长时间能够反馈回判决?

A:一般可以马上得出结果。如果超过5分钟仍未有结论,请速与工作人员联系。

Q:如果我的机器出问题怎么办?

A:请速与工作人员联系。请尽量在测试环境阶段发现问题。在正式比赛期间由于机器问题造成的比赛时间延误,一般不追加时间。

Q:在测试环境过程中,我应该干什么?

A:在此阶段,将出一道简单的热身题目,题目的解答与否与比赛成绩没有任何关系。选手应该在此期间熟悉所用机器的环境,检查软硬件是否有问题,并编制程序进行提交,熟悉提交系统的使用方法。可以故意编制一些含有错误的程序,熟悉系统对于错误提交的反馈结果。

Q:提交的解答由谁来判决?

A:本次比赛的提交程序由程序自动判决。在特殊情况下,由裁判判决。

Q:提交的是程序本身还是可执行文件?

A:程序。

Q:我是否可以将程序放到多个文件中?

A:不可以。

Q:是否会因为我的程序书写规范而获得奖励,或者因为程序不易读而遭到惩罚?

A:不会。一切以程序的执行结果为标准,除非特殊情况,否则裁判不会留意你的程序的。

Q:试题对算法有要求么?

A:没有,只要在限制时间内能够正确解答出来就可以。

Q:我的程序的运行时间远远低于要求,这是否作为一个衡量标准?

A:不会。只要在规定的时间内运行正确,都将同样对待。

Q:我已经在纸面上写出了某道题的答案,但由于时间原因没有在计算

机上运行,能否给一定的分数?

A:不能。本比赛完全按照在计算机上的程序与运行决定成绩。

关于试题:

Q:这个竞赛都考什么样的试题?

A:本竞赛是关于程序设计方面的竞赛,因此试题类型都是编制程序,解决一个问题。具体样例可以参见https://www.360docs.net/doc/2215255933.html,。

Q:题目的难度如何?

A:一般来说,如果在JOJ上能够作出50道左右的题目,那么在本次比赛中应该至少作出两道题。

Q:我一定要按照题目的次序作题么?

A:不。选手可以自由决定作题的次序。试卷中的题目次序与试题难度无关。

Q:我是否要解决所有问题?

A:不必。如果你能解决所有问题,那么可以保证获得金奖了。

Q:要想获得一等奖,需要解决多少道题目?

A:按照我们的估计,大概需要解决三分之二以上的题目。

Q:我只会用PASCAL语言,是否可以参赛?

A:可以,本次竞赛允许使用PASCAL语言。但国际上的ACM竞赛只允许使用C/C++和Java语言,因此如果你想参加吉林大学ACM代表队,还要学习和使用这两种语言,尤其是C++。

Q:在判决时使用的数据是否和试题中的一样?

A:不一样。判决时使用的数据可以是符合题目要求的各种数据。数据量也可能很大。

Q:我需要测试输入数据是否满足输入条件么?

A:不需要。可以保证输入数据都是符合题目中的要求的。

Q:数据从那里输入?输出到哪里?

A:本次比赛的输入输出都是标准输入和标准输出。例如在C/C++中可以直接使用cin, cout。

Q:我在本地如何进行测试?

A:将你的程序编译成可执行文件后(假设为prog.exe),将输入数据

写在一个文件中(假设为in.txt)。在命令行模式下,使用文件重定向来测试。例如:

Prog < in.txt。也可以将结果写到另一个文件中,如prog < in.txt > out.txt。这种方式可以读取到文件结束符。

Q:输入输出是否有一定要求?

A:是的。试题中对于输入输出都有严格说明,必须按照这个标准进行。否则程序将不能得到正确结果。

Q:Compiler Error(编译错)是什么含义?

A:这说明你的程序在服务器上出现编译错误,请查看详细信息确定错误的具体内容。并请检查提交时是否选择了正确的语言。

Q:Runtime Error(运行错)是什么含义?

A:这说明你的程序在运行期间出现了某些错误。常见的错误包括:除零错误,数组越界,指针指向的单元不存在等。还有一种可能就是在C/C++中,main函数的返回值不是0。

Q:Time Over(超时)是什么含义?

A:每一个题目都有一个最大运行时间的要求(在试题中明确标出),如果你的程序的运行时间超过这个要求,将被强制停止,并返回这个错误。这种情况可能是由于程序中错误地出现了死循环,也可能是因为你的算法不够优化,这就需要重新设计算法和数据结构。

Q:Output Too Much(输出过多)是什么含义?

A:在系统中,为管理资源,对每个程序的输出数量是有限制的。出现这种情况,一般都是因为程序中错误地出现了死循环,不断输出一些错误结果。

Q:Wrong Answer(结果错)是什么含义?

A:这是一种最常见的错误,也就是说明你的程序的计算出的结果不对。如果你在本地测试正确,则要注意到判决时所使用的可能是各种符合要求的数据,需要考虑你的算法是否考虑到了所有情况。

Q:Presentation Error(格式错)是什么含义?

A:如果输出中只有空格和回车与答案不一样,则返回这个错误。在试题中均有严格说明,请仔细察看题目,尤其是空行。这个错误一般标志算法的基本方案已经正确了,离正确解答只有一步之遥。

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

《ACM算法与程序设计》解题报告模板

电子科技大学 期末解题报告 课程:《ACM算法与程序设计》学院: 学号: 姓名: 报告成绩:教师签名:

讨厌的青蛙 1、链接地址 https://www.360docs.net/doc/2215255933.html,/problem?id=2812 2、问题描述 在韩国,有一种小的青蛙。每到晚上,这种青蛙会跳越稻田,从而踩踏稻子。农民在早上看到被踩踏的稻子,希望找到造成最大损害的那只青蛙经过的路径。每只青蛙总是沿着一条直线跳越稻田,而且每次跳跃的距离都相同,如图1所示。稻田里的稻子组成一个栅格,每棵稻子位于一个格点上,如图2所示。而青蛙总是从稻田的一侧跳进稻田,然后沿着某条直线穿越稻田,从另一侧跳出去,如图3所示。 问题描述

青蛙的每一跳都恰好踩在一棵水稻上,将这棵水稻拍倒。可能会有多只青蛙从稻田穿越,有些水稻被多只青蛙踩踏,如图4所示。当然,农民所见到的是图5中的情形,看不到图4中的直线。 根据图5,农民能够构造出青蛙穿越稻田时的行走路径,并且只关心那些在穿越稻田时至少踩踏了3 棵水稻的青蛙。因此,每条青蛙行走路径上至少包括3 棵被踩踏的水稻。而在一条青蛙行走路径的直线上,也可能会有些被踩踏的水稻不属于该行走路径。在图5中,格点(2, 1)、(6, 1)上的水稻可能是同一只青蛙踩踏的,但这条线上只有两棵被踩踏的水稻,因此不能作为一条青蛙行走路径;格点(2, 3)、(3, 4)、(6, 6)在同一条直线上,但它们的间距不等,因此不能作为一条青蛙行走路径;格点(2, 1)、(2, 3)、(2, 5)、(2, 7)是一条青蛙行走路径,该路径不包括格点(2, 6)。请你写一个程序,确定在所有的青蛙行路径中,踩踏水稻棵数最多的路径上有多少棵水稻被踩踏。例如,图5的答案是7,因为第6 行上全部水稻恰好构成一条青蛙行走路径。

程序设计比赛试题

程序设计比赛试题 最少钱币数: 【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M (1<=M<=2000,整数),接着的一行中,第一个整数K(1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

Feli的生日礼物 【问题描述】 Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

安徽ACM省赛试题

2018年安徽省机器人大赛程序设计竞赛

目录A.数7 B.编译错误 C.做操的时候要排好队D.判重 E.最长上升字串 F.雄伟的城堡 G.然后打5 H.运货卡车 I.最大矩形框 J.数列分段 K.数数字

A.数7 时间限制: 3s 描述 求整数序列中位置L到位置R中一共有多少个7。对于每个数7的个数的定义为,十进制各个位置上一共有多少个7,以及能够被7整除的次数。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中两个整数L,R。其中T≤50,L

B.编译错误 时间限制: 3s 描述 在程序员编写程序的时候,通常会引用其他文件,而引用的文件也会引用其它的头文件。但是出现循环引用的现象编译时便会报错。例如A引用了B,B引用了C,C引用了A,那么就产生了循环引用(Circular reference)。考虑另外一个情况,A引用了B和C,B引用D,C引用D,虽然D被引用了两次,但是没有出现循环引用。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中第一行是一个整数n,代表有多少个引用关系。接下来n行每行有2个字符串a,b,用空格分隔,代表a引用了b。其中T≤50, n≤105,每个字符串长度不超过100。 输出 共T行。若不会产生编译错误则输出Passed,否则输出Failed。 样例输入 样例输出

C.做操的时候要排好队 时间限制: 3s 描述 同学们在做早操时,应该按照身高从低到高排好队。但是总是有人不好好排队,老师在审查时会对没有排好的队伍扣除一定的分数。扣的分数被定义为,找到三个人Ai,Aj,Ak,其中i

acm程序设计大赛

acm程序设计大赛 一、参赛队的组成: 每只队伍三名参赛队员组成,设队长一名。 超过两名以上选手为女队员的参赛队可认为具有女队的资格。 在解出同等题目的情况下,女队优先,然后再计算时间(争夺第一名时除外)。 二、竞赛过程 竞赛中命题 6 题,比赛时间为5个小时。比赛编程语言为C或C++。 队员在接到题目后,编程进行解答,解答完每道题目,即可将程序通过网络提交,评委当场对提交的程序进行评判,并对提交的时间进行记录,经运行测试后由裁判判为正确或者错误,判决结果由系统自动反馈给参赛队伍。如果正确,就为该队挂上一个气球,不同颜色的气球代表不同的题目。为了增加比赛的紧张气氛,比赛结束前一个小时,停止公布所有的成绩。 参赛队员有权提交解释请求,针对题目描述中的不明确或错误的部分提问。如果裁判确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。 在竞赛中,参赛队员不得和同组成员以及竞赛组委会指定工作人员以外的人交谈;系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。 参赛队员不能携带任何电子设备。允许携带纸质材料,包括源代码,参考书,字典等。 当参赛队伍出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛组委会剥夺参赛资格。 三、竞赛评分 竞赛裁判主要负责当比赛选手对裁判系统的结果提出异议或题目需要人工判别时作出相应解释或判定。竞赛组委会主任在与竞赛裁判组协商后确定获胜队伍,有权根据由于不可预见的事件引起的问题,对结果进行调整,这个决定是最终的。 比赛最终结果由每支队伍解决的题目以及解决时间来决定。解题多者获胜,如果有队伍解题数量相同,则根据总用时加上惩罚时间进行排名。总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间组成。每道试题用时将从竞赛开始到试题解答被判定为正确为止,期间每一次错误的运行将被加罚20分钟时间,未正确解答的试题不计时。

acm程序设计大赛题目

The Mailboxes Manufacturers Problem Time Limit:1000MS Memory Limit:65536K Total Submit:299 Accepted:227 Description In the good old days when Swedish children were still allowed to blowup their fingers with fire-crackers, gangs of excited kids would plague certain smaller cities during Easter time, with only one thing in mind: To blow things up. Small boxes were easy to blow up, and thus mailboxes became a popular target. Now, a small mailbox manufacturer is interested in how many fire-crackers his new mailbox prototype can withstand without exploding and has hired you to help him. He will provide you with k(1 ≤ k≤ 10) identical mailbox prototypes each fitting up to m(1 ≤ m≤ 100) crackers. However, he is not sure of how many firecrackers he needs to provide you with in order for you to be able to solve his problem, so he asks you. You think for a while and then say, “Well,if I blow up a mailbox I can’t use it again, so if you would provide me with only k = 1 mailboxes, I would have to start testing with 1 cracker, then 2 crackers, and so on until it finally exploded. In the worst case, that is if it does not blow up ev en when filled with m crackers, I would need 1 + 2 + 3 + … + m = m ×(m+ 1) ? 2 crackers. If m = 100 that would mean more than 5000 fire-crackers!” “That’s too many,” he replies. “What if I give you more than k = 1 mailboxes? Can you find a strategy that requires less crackers?” Can you? And what is the minimum number of crackers that you should ask him to provide you with? You may assume the following: 1.If a mailbox can withstand x fire-crackers, it can also withstand x? 1 fire-crackers. 2.Upon an explosion, a mailbox is either totally destroyed (blown up) or unharmed, which means that it can be reused in another test explosion.

首届全国中医药院校大学生程序设计竞赛试题

Problem A: 序列的混乱程度 Time limit:1s Memory limit:128MB Description 有一个长度为n的正整数序列,一个序列的混乱程度定义为这个序列的最大值和最小值之差。请编写一个程序,计算一个序列的混乱程度。 Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 每组测试数据的第一行为一个正整数n(1<=n<=1000),代表这个序列的长度。第二行为n 个正整数,代表这个序列。序列中元素的大小不会超过1000。 Output 对于每个测试数据,输出一行包含一个正整数,代表对应序列的混乱程度。 Sample Input 2 5 1 2 3 4 5 5 1 9 2 4 8 Sample Output 4 8

Problem B: 随机数 Time limit:1s Memory limit:128MB Description 有一个rand(n)的函数,它的作用是产生一个在[0,n)的随机整数。现在有另外一个函数,它的代码如下: int random(int n,int m) { return rand(n)+m; } 显而易见的是函数random(n,m)可以产生任意范围的随机数。现在问题来了,如果我想要产生范围在[a,b)内的一个随机数,那么对应的n,m分别为多少? Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 对于每组测试数据包含两个整数a,b(a<=b)。 Output 对于每组测试数据,输出一行包含两个整数n和m,两个整数中间有一个空格分隔。 Sample Input 2 0 5 1 4 Sample Output 5 0 3 1

第六届程序设计比赛题目与答案

一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 1.#include 2.void main( ) 3.{ 4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 5.scanf("%d", &nCases); 6.for(i = 0; i < nCases; i++){ 7.scanf("%d", &nFeet); 8.if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, 9.// 因为不论2只还是4只,都是偶数 10.printf("0 0\n"); 11.else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 12.//若要动物数目最多,使动物尽量有2只脚 13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2); 14.else printf("%d %d\n", nFeet / 4, nFeet / 2); 15.} 16.}

山东科技大学第二届ACM程序设计大赛试题

山东科技大学 第二届ACM程序设计大赛 试题册 试题共14页,题目共计12道

山东科技大学第二届ACM 程序设计大赛试题册 Problem A 简单计算 Description 给出n 个十进制的数,找出这n 个数的二进制表示中1的个数最少的数。 Input 输入的第一行为一个正整数T (1≤T ≤20),代表测试数据组数。 对于每组测试数据,输入的第一行为一个正整数n (1≤n ≤10000),第二行为n 个正整数A 1、A 2、…、A n (1≤A i ≤109 ),每个数之间以空格分隔。 Output 每组数据输出一行,先输出数据组数,再输出二进制中含1最少的数,如果存在多个数符合条件,输出最小的那个。具体输出格式见样例输出。 Sample Input Sample Output

山东科技大学第二届ACM 程序设计大赛试题册 Problem B 关键字搜索 Description 我们的新网站具有了全新的搜索功能,使用了2个通配符“*”和“?”,其中“*”表示0或者多个小写字母,“?”代表1个字母。 当我们输入一个关键字的时候,我们在不确定的地方就使用通配符。我们在数据库里面有多条记录,每条记录都是由小写字母组成,现在给出一个关键字,你能告诉我数据库里面有多少条与关键字相匹配的记录吗? 例如: 如果关键字是j*y*m*y?,那么jiyanmoyu ,jyanmoyu ,jymyu 都是相匹配的记录。 Input 第一行输入一个T (T ≤20),表示有T 组测试数据。对于每组测试数据,第一行是输入的关键字,接下是数据库里面的所有记录的条数n ,1≤n ≤10000,每条记录的长度不超过50个小写字母。 Output 对于每组测试数据,输出与关键字相匹配的总记录条数,占一行。 Sample Input Sample Output

2019年大学生程序设计大赛策划书

2019年大学生程序设计大赛策划书 一、活动名主题 “华为”杯程序设计大赛 二、举办单位 策划主办单位:华为技术有限公司 协办单位:(排名不分先后)华中科技大学、武汉大学、武汉理工大学 三、活动时间 20xx年x月x日-x月xx日 四、参赛资格 ●本次大赛面向武汉三所目标高校在校全日制本科及以上学历学生(毕业时间在20xx年x月xx日之后)。 ●初赛以个人为单位,性别、专业不限;预计800人;

●在华为官方的网站注册报名,报名成功后获得参赛资格,只有在报名期间进行网上注册后才能参与比赛。 五、竞赛流程 第一阶段:报名参赛(5月10日—5月24日) l参赛选手阅读参赛注意事项,确认协议内容,在华为官方的 网站上注册简历,获得参赛资格的选手以个人身份参赛。 第二阶段:初赛(6月1日8:00—6月1日12:00) l网吧集中测试(集中招聘机试流程) 1.5月30日18:00前,通过邮件、短信和电话的形式通知通过简历筛选的学生初赛场地、机试场次、时间、所需证件及注意事项; 2.1日当天,学生凭身份证刷卡签到,并获取自己的登录账号 与密码。

3.学生按安排的批次进行入座考试,机试全程为30分钟,逾时将视为不及格。全程考试属封闭式测试,不得翻阅网页及手机,完全独立完成整个测试过程。一旦发现翻阅行为,一律视为作弊,将会被取消参赛资格。 4.考试成绩按照答案正确率与用时两个维度进行评价,在追求准确的同时对学生们的编程效率也作出了要求。 第三阶段:软件训练营(6月2日9:00—6月2日16:00) l1日晚将通过邮件、短信与电话的形式,邀请通过初赛的18 位学生参加为期6个小时的软件训练营-敏捷开发的训练课程,本课程主要是针对学生编程思维进行的引导式更新,课程内容比较灵活多变,动手环节较多,较有吸引力。 l中午学生将统一在华为A2食堂进行就餐。 l完成培训的学生将会收到华为武研所办法的“敏捷技能拥有者”的荣誉证书和决赛工具包(题目+小贴士+输出文件)。 l培训后,同学将会自主组成6个三人组进行接下来的决赛。每两个三人组将会由一位导师(业务部门提供的业务骨干)进行指导,

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

安徽省大学生程序设计大赛

安徽省大学生程序设计大赛 竞 赛 方 案 全国大学生信息安全竞赛安徽省赛区组委会安徽省大学生程序设计大赛技术委员会

一.竞赛章程 ●竞赛宗旨 为培养安徽省高校大学生的创新意识和创新能力,提高大学生应用计算机分析和解决实际问题的能力,安徽省教育厅主办了安徽省大学生程序设计大赛,赛事旨在为广大学生的一个展示和提高解题与编程能力的机会,开展计算机编程方面的公平竞赛。 ●竞赛设置 安徽省大学生程序设计大赛计划开展本科组、高职组两个级别竞赛。参赛以学校为单位,组委会为每个单位提供3支队(含)以内参赛名额,参赛单位3支队(不含)以上参赛名额由参赛单位向组委会提出申请,报名截止后组委会根据报名情况统一裁定。组委会根据参赛情况适量接受少量友情参赛队,队名附“*”以示区别,不参加评奖。 安徽省大学生程序设计大赛由大赛技术委员会负责命题、评判,采用统一命题,本科组、高职高专组分组设奖方式进行,奖项设置以各组别参赛队伍为基数,按参赛队成绩排序,分别设置一等奖(不超过基数10%)、二等奖(不超过基数20%)、三等奖(不超过基数30%)和优胜奖。 ●参赛队伍组成 比赛以队为参赛基础,队的组成包括教练1~2名(必须是参赛学校的教师),以及不超过3名参赛队员。每个参赛学校可以派多支代表队,每个参赛学校可有一名领队(可选),至少一名教练(必需,可兼任同一学校多支队伍教练)以及若干参赛队员组成。 教练是参赛队伍所代表学校的正式教师,教练必须保证所有队员符合本规则的规定。教练作为参赛队伍的代表,负责赛区预赛活动中的联系工作。 参赛队伍必须向竞赛组织委员会提交领队、教练和队员的身份合格证明材料,经竞赛组织委员会审查通过后,一支队伍才能获得参赛资格。 领队、教练和队员的身份合格证明材料:由各高校教务部门一次性出具所在

ACM程序设计竞赛例题

备战ACM资料 一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文件中) 4,图(基本概念,存储结构,图的运算) 数学知识 1,离散数学知识的应用(如排列组合、简单的图论,数理逻辑) 2,数论知识 3,线性代数 4,组合代数 5,计算几何 二算法 1,排序算法(冒抛法,插入排序,合并排序,快速排序,堆排序) 2,查找(顺序查找,二分发) 3,回溯算法 4,递归算法 5,分治算法 6,模拟法 7,贪心法 8,简单搜索算法(深度优先,广度优先),搜索中的剪枝,A*算法 9,动态规划的思想及基本算法 10,高精度运算 三、ACM竞赛的题型分析 竞赛的程序设计一般只有16种类型,它们分别是: Dynamic Programming (动态规划) Greedy (贪心算法) Complete Search (穷举搜索) Flood Fill (不知该如何翻译) Shortest Path (最短路径) Recursive Search Techniques (回溯搜索技术) Minimum Spanning Tree (最小生成树) Knapsack (背包问题) Computational Geometry (计算几何学) Network Flow (网络流) Eulerian Path (欧拉回路) Two-Dimensional Convex Hull (不知如何翻译) BigNums (大数问题)

Heuristic Search (启发式搜索) Approximate Search (近似搜索) Ad Hoc Problems (杂题) 四ACM竞赛参考书 《实用算法的分析与程序设计》(吴文虎,王建德著,电子工业出版社,竞赛类的黑宝书)《青少年国际和全国信息学(计算机)奥林匹克竞赛指导)――组合数学的算法 和程序设计》(吴文虎,王建德著,清华大学出版社,参加竞赛组合数学必学) 《计算机算法设计与分析》(王晓东编著,最好的数据结构教材) 《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材) 《信息学奥林匹克竞赛指导――1997-1998竞赛试题解析》(吴文虎,王建德著,清华大学出版社) 《计算机程序设计技巧》 D.E.Kruth著,算法书中最著名的《葵花宝典》,大师的作品,难度大) 《计算几何》周陪德著 《ACM国际大学生程序设计竞赛试题与解析(一)》(吴文虎著,清华大学出版社) 《数学建模竞赛培训教材》共三本叶其孝主编 《数学模型》第二版姜启源 《随机规划》 《模糊数学》 《数学建模入门》徐全智 《计算机算法设计与分析》国防科大 五常见的几个网上题库 常用网站: 1)信息学初学者之家:https://www.360docs.net/doc/2215255933.html,/ (2)大榕树编程世界:https://www.360docs.net/doc/2215255933.html,/~drs/program/default.asp (3)中国教育曙光网:https://www.360docs.net/doc/2215255933.html,/aosai/ (4)福建信息学奥林匹克:https://www.360docs.net/doc/2215255933.html,/fjas/index.htm (5)第20届全国青少年信息学奥林匹克竞赛:https://www.360docs.net/doc/2215255933.html,/ (6)第15届国际青少年信息学奥林匹克竞赛:https://www.360docs.net/doc/2215255933.html,/ (7)全美计算机奥林匹克竞赛:https://www.360docs.net/doc/2215255933.html,/usacogate (8)美国信息学奥林匹克竞赛官方网站:https://www.360docs.net/doc/2215255933.html,/ (9)俄罗斯Ural州立大学:http://acm.timus.ru/ (10)西班牙Valladolid大学:http://acm.uva.es/problemset (11)ACM-ICPC:https://www.360docs.net/doc/2215255933.html,/icpc/ (12)北京大学:https://www.360docs.net/doc/2215255933.html,/JudgeOnline/index.acm (13)浙江大学:https://www.360docs.net/doc/2215255933.html,/ (14)IOI:http://olympiads.win.tue.nl/ioi/ (15)2003年江苏省信息学奥林匹克竞赛夏令营:https://www.360docs.net/doc/2215255933.html, (16)https://www.360docs.net/doc/2215255933.html, (17)https://www.360docs.net/doc/2215255933.html, (18)https://www.360docs.net/doc/2215255933.html, (19)https://www.360docs.net/doc/2215255933.html,/downldmanag/index.asp (20)https://www.360docs.net/doc/2215255933.html, colin_fox/colin_fox 五如何备战ACM/ICPC

大学生计算机编程大赛活动策划书

大学生计算机编程大赛活动策划书 为推进学院素养教育,提高大学生的科学素质,拓展我院学生的综合素养,丰富大学生的校园文化日子,营造浓郁的学术、科技氛围,进一步培养学生的创新意识、创新精神和创新能力。软件协会开展以勤奋学习,创新实践为主题的大学生计算机编程大赛。要紧内容如下: 一、大赛宗旨 旨在培养和激励高校学生的制造力、团队合作精神以及在软件开辟过程中的创新能力。并且此次大赛将视为对明年的省高校杯的一次演练,提高广阔学生开展计算机软件设计的兴趣和能力,,给广阔在计算机程序设计方面有特长的同学提供展示才干的舞台。经过参赛,检验学生在压力下进行开辟的能力,展示其创新能力,为加强校内同学间的交流和相互学习提供机会。 二、参赛对象参赛者均为广东科贸职业学院信息工程系在校学生。 三、参赛形式和报名办法 1.本次比赛采取团队报名的形式 2、参赛团队填写报名表(报名电子表发送到信工系各班团支书)。 3、由各班团支书负责统一收集参赛团队报名表,并在规定的报名时刻内将本班参赛者报名表交到负责人处,逾期别收。 其他详细信息可留意软件协会官方博客: 四、竞赛方式及要求1、本次比赛的内容是依照拟定项目或者依照现实需要自行设计一具项目参与本次大赛项目评比。 2、竞赛时刻为三个星期,参赛团队须在规定时刻内完成。 3、竞赛期间选手能够翻阅相关的工具书。 4、参赛者应尊重自己的劳动成果,严禁将自己的作品拿给他人抄袭,严禁抄袭他人的作品。(违反此条例者,将追究其相关责任) 5、竞赛期间别局限于参赛者使用何种技术体系,别局限于使用何种开辟工具及操作系统。 项目评比参考: •项目的稳定性、项目的有用性 •项目使用的技术框架及开辟平台 •项目代码编写的标准及是否强壮 结果评定:竞赛排名依照项目评比的成绩的总和得出。 五、活动时刻安排 3、项目评比:12月下旬 (注:以上时刻和地方安排可依照实际事情另行更改) 六、奖项设置一等奖(1名):500元、荣誉证书 二等奖(1名):300元、荣誉证书 优胜奖(若干):大赛精美纪念品注:本次比赛奖项设置为证书和物质奖励 1、本次比赛安排如有变动,另行通知。 2、本次大赛未尽事项的解释权归属广东科贸职业学院软件协会。

河南省第四届ACM程序设计大赛原题

所有题目时间限制:1秒 【T1】 序号互换 Dr.Kong 设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来。单元格的行坐标是由数字编号的数字序号,而列坐标使用字符序号。观察字母序号,发现第1列到第26列的字母序号分别为A,B,……,Z,接着,第27列序号为AA,第28列为AB,以此类推。 若给Dr.Kong的机器人卡多一个数字序号(比如32),它能很快算出等价的字母序号(即AF),若给机器人一个字母序号(比如AA),它也能很快算出等价的数字序号(27),你能不能与卡多比试比试,看谁能算得更快更准。 【标准输入】 第一行:N 表示有多少组测试数据。 接下来N行,每行或者是一个正整数,或者是一个仅由大写字母组成的字符串。 【标准输出】 对于每一行测试数据,输出一行。如果输入为一个正整数序号,则输出等价的字母序号;如果输入为字符串,则输出等价的数字序号。 【约束条件】 输入保证,所有数字序号和字母序号对应的数字序号均<=2*10^9 【样例】 【T2】 节能 Dr.kong 设计的机器人卡多越来越聪明。最近市政府公司交给卡多一项任务,每天早晨5:00开始,它负责关掉ZK大道右侧上的所有路灯。 卡多每到早晨5:00准会在ZK大道上某盏灯的旁边,然后他开始关灯。每盏灯都有一定的功率,机器人卡多有自觉的节能意识,它希望在关灯期间,ZK大道右侧上所有的路灯的耗电总量数是最少的。 机器人卡多以1m/s的速度行走。假设关灯动作不需要花费额外的时间,因为当它通过某盏路灯时就

顺手将灯关掉。 请编写程序,计算在给定路灯设置,灯泡功率以及机器人卡多的起始位置的情况下,卡多关灯期间,Zk大道上所有灯耗费的最小能量。 【标准输入】 第一行N 表示ZK大道右侧路灯的数量(2<=N<=1000) 第二行V 表示机器人卡多开始关灯的路灯号。(1<=V<=N) 接下来的N行中,每行包含两个空格隔开的整数D和W,用来描述每盏灯的参数 D表示该路灯与ZK大道起点的距离(用米为单位来表示) W表示灯泡的功率,即每秒该灯泡所消耗的能量数。路灯是按顺序给定的。 (0<=D<=1000,0<=W<=1000) 【标准输出】 输出一个整数,即消耗总能量之和的最小值。注意结果小于200,000,000 【样例】 【T3】 表达式求值 Dr.Kong 设计的机器人卡多掌握了加减运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20,add(10,98)的值是108等等。经过训练,Dr.Kong 设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 假设表达式可以简单定义为: 1.一个正的十进制数x是一个表达式。 2.如果x和y是表达式,则函数min(x.y)也是表达式,其值为x,y中最小的数。 3.如果x和y是表达式,则函数max(x,y)也是表达式,其值为x,y中最大数。 4.如果x和y是表达式,则函数add(x,y)也是表达式,其值为x,y之和。 例如,表达式max(add(1,2),7)的值为7. 请编写程序,对给定的一组表达式,帮助DrKong算出正确答案,以便校队卡多计算的正误。

C语言程序设计大赛题目

C语言程序设计大赛题 目 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。 题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<> intmain() { intn,count=0; printf("Pleaseenternumber:"); scanf("%d",&n);/*输入任一整数*/ do{ if(n%2) { n=n*3+1;/*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2;/*若为偶数n除以2*/ printf("[%d]:%d/2=%d\n",++count,2*n,n); } }while(n!=1);/*n不等于1则继续以上过程*/

}

2.四方定理 数论中着名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 #include<> #include<> intmain() { intnumber,i,j,k,l; printf("Pleaseenteranumber="); scanf("%d",&number);/*输入整数*/ for(i=1;i intmain() { inta,b,c,d; printf("Pleaseenteranumber:"); scanf("%d",&a);/*输入整数*/

历届程序设计acm试题

搜集的南开大学的ACM试题与你共享 [A]南开大学Onlinejudge 在线判题系统https://www.360docs.net/doc/2215255933.html, A.Lucy的新难题 时间限制:2秒内存限制:32000KB 不知不觉,南开大学第三届“我为程序狂”又要拉开帷幕了。这天,Lucy也来到南开大学ACM协会,与大家共同欢庆NKPC的三周岁的日子。 谈笑间,ACM协会的主席拿了圆形的生日蛋糕。大伙开心地唱完了生日歌,一起吹灭了蜡烛。 要分蛋糕了,大家都很兴奋。本着公平的原则,每位到场的人员都要在蛋糕上切一刀。ACM协会的主席事先知道有n位朋友会参与这个欢庆宴会。为了方便大家切蛋糕,主席在订蛋糕的时候就嘱咐在蛋糕的边缘布置上2n朵小花。 每个人切蛋糕都会从蛋糕的边缘的一朵小花笔直地切到蛋糕的另一端的小花,来表达自己对NKPC的祝福。为了尊重其他同学,每个人在切蛋糕一定不会和蛋糕上已有的切痕相交,也不会从别人已切过的小花作为切蛋糕的起点或终点。同时,每位同学在切蛋糕的时候,都要保证后面所有的同学都能够按照上述的规则切蛋糕。这样,蛋糕上就留下n条切痕。 Lucy眨巴眨巴眼睛,问,要是不考虑切蛋糕的先后顺序和谁切的哪一刀,这蛋糕切完了共有多少种切法呢? 大家听了呵呵一笑,说,那就把这个问题留给NKPC3,作为《Lucy的新难题》吧。 相信聪明的你,一定能够帮Lucy解答她的难题的,对吗? 输入包括多组测试数据,你应当处理到输入结束为止。 每组输入数据中,都只有一行,仅包含一个正整数n,且0

2016年“京胜杯”安徽省大学生程序设计大赛

2016年?京胜杯?安徽省大学生程序设计大赛 比 赛 题 目 全国大学生信息安全竞赛安徽省赛区组委会安徽省大学生程序设计大赛技术委员会 2016年5月24日合肥

目录 A.砝码称重 B. 阵前第一功 C. 箭无虚发 D. 梯田AGAIN E. 转啊转 F. 吃在工大 G. 木条染色 H. 单身晚会 I. 恶魔A+B J. YZK的大别墅K. 纸上谈兵

A. 砝码称重 Time Limit: 1000 MS Memory Limit: 65536 KB 题目描述: 小明非常喜爱物理,有一天,他对物理实验室中常用的弹簧拉力计产生了兴趣。实验室中有两种质量不同的砝码,小明分别用a个第一种砝码放在弹簧拉力计上和b个第二种砝码放在弹簧拉力计上,假设每增加单位重量的砝码,弹簧拉力计的长度增加1,那么两次称量弹簧拉力计的长度差是多少呢?(假设拉力计不发生非弹性形变) 输入格式: 第一行一个整数T,表示有T组数据。 之后T行,每行数据包含四个正整数,分别表示第一种砝码重量a,第一种砝码数量b,第二种砝码重量c,第二种砝码数量d。 T<25 0

B. 阵前第一功 Time Limit: 1000 MS Memory Limit: 65536 KB 题目描述: A国每个国民都有一定战斗力,每年国家都要对人民的战斗力进行一次排序统计,他们的排序规矩是相同战斗力的排名一样,而且只占一个排序名额。比如,有5个人:100,100,90,90,70. 两个100的并列第一,称为第一战斗力,两个90的并列第二,称为第二战斗力,依次类推……现在你想查询第K战斗力是多少 输入描述: 先输入一个整数T,表示T(T<50)组数据。 每组第一行一个正整数N(1000>N>0),表示表示有N个人。接下里一行N 个正整数ai(2^30>=ai>=0),表示每个人的战斗力。 接下输入一个正整数K(N>=K>0)。(保证输入都合法) 输出描述: 输出第K战斗力,输出占一行 输入样例: 2 5 100 90 90 100 70 2 10 1 2 3 3 3 400 3 4 3 1 4 输出样例: 90 2 注解:这是一道简单题,用简单的排序算法就可以。

相关文档
最新文档