ACM程序设计大赛

合集下载

ACM 国际大学生程序设计竞赛(ICPC) 规则

ACM 国际大学生程序设计竞赛(ICPC) 规则

ACM 国际大学生程序设计竞赛(ICPC) 规则ACM 国际大学生程序设计竞赛(ICPC) 规则ACM 国际大学生程序设计竞赛(ICPC) 是全球最具影响力的大学生程序设计竞赛之一。

本文将简要介绍ACM ICPC的参赛规则和相关信息。

一、ACM ICPC 简介ACM ICPC 是一项面向大学生的年度性程序设计竞赛,始于1977年。

该竞赛的目标是鼓励大学生在编写和分析算法的过程中开拓思路,提高编程和解决问题的能力,培养团队协作精神。

二、参赛队伍1. 队伍组成每支参赛队伍由3名学生组成,其中最多可包括一名备用队员。

队员必须是在所属学校就读的全日制本科生。

2. 参赛资格参赛队员必须符合以下资格要求:- 未获得任何学位(包括本科学位);- 没有参加过之前的ACM ICPC 总决赛;- 通过所在学校的选拔赛和省级赛事等层层选拔。

三、竞赛环节1. 在线初赛ICPC竞赛的第一轮是在线初赛,根据不同地区的参赛队伍数量划分为多个赛区进行。

在指定时间内,队员需通过网络完成多个编程题目的解答。

2. 区域赛在线初赛的前若干名队伍将晋级到区域赛。

区域赛采用现场方式进行,由3个小时的算法设计和编程任务组成。

3. 总决赛区域赛的前若干名队伍将有资格参加ACM ICPC 的总决赛,争夺世界冠军。

总决赛通常由多场比赛组成,包括代码编写、程序设计和问题解答等环节。

四、竞赛规则1. 语言限定ICPC允许使用多种编程语言,包括但不限于C++、Java和Python。

参赛队伍需在规定的环境中编写代码并进行提交。

2. 时间限制每个竞赛环节都有严格的时间限制。

队伍必须在规定的时间内提交答案,否则无法计入成绩。

3. 题目难度竞赛题目按照难度分级,分为简单、中等和困难等级。

队伍需在规定时间内解决尽可能多的题目,并获得尽可能高的分数。

4. 团队合作ICPC强调团队合作,鼓励队员之间相互协作、交流和分享解题思路。

参赛队伍需充分发挥团队优势,高效配合,完成各项任务。

acm程序设计大赛试题

acm程序设计大赛试题

acm程序设计大赛试题ACM(Association for Computing Machinery)程序设计大赛是一项面向大学生的编程竞赛,旨在提高参赛者在算法和数据结构方面的能力。

每年都会举办多个级别的比赛,包括区域赛、国家赛和世界总决赛。

ACM程序设计大赛试题通常涵盖广泛的计算机科学和编程知识,包括但不限于以下几个方面:1. 算法和数据结构,试题可能涉及各种经典算法和数据结构的应用,如排序、查找、图论、动态规划、贪心算法等。

参赛者需要能够理解这些算法的原理和实现方法,并能够根据问题的要求选择合适的算法进行解题。

2. 编程语言和编程技巧,参赛者需要熟练掌握至少一种编程语言,通常是C++、Java或Python。

他们需要能够使用该语言进行编程,实现算法和数据结构的代码,并能够处理输入输出、异常处理等编程任务。

此外,熟练掌握一些编程技巧,如优化算法、调试代码等也是非常重要的。

3. 数学和逻辑思维,ACM程序设计大赛试题可能涉及一些数学和逻辑问题,如数论、组合数学、概率统计等。

参赛者需要具备基本的数学知识,并能够将其应用到解题过程中。

4. 实际问题的建模和解决,ACM程序设计大赛试题通常基于实际问题,参赛者需要能够将问题抽象为计算机可解决的形式,并设计出高效的算法和数据结构进行求解。

这需要参赛者具备一定的问题建模和解决能力。

5. 时间和空间复杂度分析,参赛者在解决问题时需要考虑算法的时间和空间复杂度。

他们需要能够分析算法的运行时间和所需内存,并根据比赛规则和问题要求选择合适的算法以保证程序的效率。

总的来说,ACM程序设计大赛试题要求参赛者具备扎实的计算机科学和编程基础,能够独立思考和解决复杂的问题。

参赛者需要在规定的时间内完成试题,并保证程序的正确性和效率。

通过参加ACM程序设计大赛,参赛者能够提升自己的编程能力和解决问题的能力,同时也能够与其他优秀的程序员交流和学习。

acm icpc比赛流程

acm icpc比赛流程

acm icpc比赛流程英文回答:ACM ICPC (International Collegiate Programming Contest) is a prestigious programming competition that challenges teams of three students to solve complex algorithmic problems within a limited timeframe. The contest consists of multiple rounds, including regional, national, and world finals.The competition process typically starts with team registration. Each team is required to have three members who will work together to solve the problems. The teams are usually formed by universities or colleges.Once the registration is complete, the contest begins with a practice session. This session allows teams to familiarize themselves with the contest environment and tools. It also provides an opportunity to practice solving problems and improve their programming skills.After the practice session, the actual contest begins. The teams are given a set of problems to solve within a fixed amount of time, usually around five hours. The problems are typically algorithmic in nature and require efficient coding skills to solve. The teams must write programs to solve the problems and submit their solutions to the contest system.During the contest, teams are not allowed to use any external resources, including the internet. They can only use the contest environment and the provided programming language documentation. This rule ensures a fair competition and tests the teams' problem-solving abilities.Once the contest time is up, the teams' solutions are evaluated by the contest system. The system checks the correctness and efficiency of the programs and assigns a score to each team based on their solutions. The teams with the highest scores are ranked higher in the contest standings.After the contest, there is usually a closing ceremony where the winners are announced and awarded. The top-performing teams in the regional contests qualify for the national or regional finals, and the winners of thenational or regional finals advance to the world finals.ACM ICPC is not only about competition; it also provides a platform for students to learn and improve their programming skills. The contest problems are designed to be challenging and require creative thinking. Participating in ACM ICPC can greatly enhance a student's problem-solving abilities and algorithmic thinking.中文回答:ACM ICPC(国际大学生程序设计竞赛)是一项备受推崇的编程比赛,要求由三名学生组成的团队在有限的时间内解决复杂的算法问题。

acm程序设计大赛试题

acm程序设计大赛试题

acm程序设计大赛试题题目:旅游管理系统一、问题描述随着信息技术的飞速发展,旅游业作为全球经济的重要组成部分,其管理和服务水平也在不断提升。

为了更好地服务游客,提高工作效率,我们计划开发一个旅游管理系统。

该系统旨在帮助旅游公司管理客户信息、行程安排、预订情况以及费用结算等业务。

本文将详细介绍该系统的设计要求和功能特点。

二、功能需求1. 客户信息管理系统应能够记录客户的基本信息,包括姓名、联系方式、身份证号码等。

同时,应支持对客户信息的增加、修改和查询功能。

此外,系统还应具备客户信息的分类和统计功能,便于旅游公司对客户群体进行分析。

2. 行程安排旅游公司需要根据客户需求和旅游资源情况,为客户制定合适的旅游行程。

系统应提供行程规划功能,包括景点选择、活动安排、住宿和交通预订等。

同时,系统应能够根据实际情况调整行程,并及时更新相关信息。

3. 预订管理系统应能够处理客户的旅游预订,包括景点门票、酒店房间、交通工具等。

预订管理功能应包括预订的创建、修改、取消和确认等操作,并能够实时更新预订状态,确保信息的准确性。

4. 费用结算旅游费用的结算是旅游管理系统的核心功能之一。

系统应能够根据客户的预订情况和实际消费,自动计算应付费用。

同时,系统还应支持多种支付方式,如信用卡、支付宝、微信支付等,并能够生成详细的费用清单和发票。

5. 数据安全与备份鉴于旅游管理系统中涉及大量敏感信息,系统必须具备严格的数据安全措施。

包括但不限于用户权限管理、数据加密、防止SQL注入等。

此外,系统还应定期进行数据备份,以防数据丢失或损坏。

三、系统架构设计1. 前端设计系统的前端设计应注重用户体验,界面友好、操作简便。

可以使用HTML5、CSS3和JavaScript等技术开发响应式网页,以适应不同设备和屏幕尺寸。

同时,前端应提供丰富的交互功能,如日历选择、地图展示、图片上传等。

2. 后端设计后端设计主要负责处理业务逻辑、数据存储和安全保障。

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

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

吉林大学ACM国际大学生程序设计竞赛简介竞赛宗旨ACM国际大学生程序设计竞赛是由位于美国的计算机协会组织的年度性竞赛,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事,它已成为国内外各高校展示实力、加强交流、相互促进、共同发展的广阔舞台。

ACM/ICPC作为具有国际权威性和影响力的国际大学生程序设计竞赛,已成为衡量大学生程序设计能力和学校计算机学科水平的重要标准之一。

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

竞赛支持网站:(校外)(校内)竞赛联系地点:前卫南校区萃文楼501竞赛交流平台:吉林大学BBS 牡丹园-电脑技术-算法版/cgi-bin/bbsdoc?board=Algorithm参赛对象1、凡吉林大学在校本专科生均可报名参加。

年级、专业不限。

鼓励低年级同学参加。

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

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

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

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

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

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

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

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

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

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

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

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

acm icpc比赛流程

acm icpc比赛流程

acm icpc比赛流程英文回答:ACM ICPC (Association for Computing Machinery International Collegiate Programming Contest) is a prestigious programming competition that brings together teams of university students from around the world to solve complex programming problems. The contest aims to promote creativity, teamwork, and problem-solving skills among the participants.The competition typically consists of several rounds, starting with regional contests and culminating in the World Finals. In the regional contests, teams compete against each other to solve a set of programming problems within a given time limit, usually around five hours. The problems cover various topics, such as algorithms, data structures, dynamic programming, and graph theory.During the contest, each team is given a singlecomputer and a set of problem statements. The team members work together to devise algorithms and write code to solve the problems. The solutions must be implemented in a programming language of their choice, such as C++, Java, or Python. The teams are judged based on the correctness and efficiency of their solutions.One of the unique aspects of ACM ICPC is that the teams are only allowed to use printed reference materials and their own knowledge during the contest. They are not allowed to access the internet or any external resources. This adds an extra challenge to the competition, as the participants must rely solely on their problem-solving abilities and programming skills.The contest is known for its time pressure and intense atmosphere. The teams must quickly analyze the problems, come up with efficient algorithms, and implement them correctly. Effective teamwork and communication are crucial in order to maximize the team's chances of solving as many problems as possible within the time limit.ACM ICPC is not only a competition but also a learning experience. The problems are carefully designed to test the participants' understanding of fundamental computer science concepts and their ability to apply them in real-world scenarios. By participating in the contest, students can improve their problem-solving skills, gain exposure to different programming techniques, and learn from their peers.In conclusion, ACM ICPC is a challenging andprestigious programming competition that brings together teams of university students from around the world. Ittests their problem-solving skills, teamwork, and programming abilities. The contest provides a unique opportunity for students to showcase their talents, learn from others, and grow as programmers.中文回答:ACM ICPC(计算机协会国际大学生程序设计竞赛)是一项著名的程序设计比赛,汇集了来自世界各地的大学生团队,共同解决复杂的编程问题。

ACM 国际大学生程序设计竞赛(ICPC) 规则

ACM 国际大学生程序设计竞赛(ICPC) 规则

ACM 国际大学生程序设计竞赛(ICPC) 规则∙竞赛宗旨ACM国际大学生程序设计竞赛(ICPC)是由ACM协会提供给大学生的一个展示和提高解题与编程能力的机会。

ACM国际大学生程序设计竞赛亚洲赛区邀请亚洲学生参加,以增进友谊,开展编程方面的公平竞赛。

∙地区预赛组织ACM竞赛中由代表高等教育机构的学生组队参加2-4轮比赛,首先是每年10月至12月举行的地区预赛,每个赛区的第一名队伍自动取得参加决赛的资格。

(地区预赛前的选拔规则参见下一章《地区二级预赛和学校选拔赛》)国际大学生程序设计竞赛的规则由ACM世界竞赛决赛指导委员会制订。

其中,竞赛主任是负责人,由竞赛主任独立负责解释竞赛规则。

当遇到无法预料的情况时,竞赛主任有权作出最终决定。

亚洲地区包括亚洲所有的地区和国家,例如香港、台湾、韩国、朝鲜、日本、中国、新加坡、马来西亚、泰国、菲律宾、印度尼西亚、印度、斯里兰卡、缅甸、越南、土耳其、澳门,蒙古、西伯利亚地区、巴基斯坦、孟加拉国、中亚地区、以色列、伊朗以及中东国家等。

亚洲赛区在地区竞赛主任的指导下进行管理。

在获得竞赛主任的同意的前提下,由地区竞赛主任负责执行亚洲赛区的规则和指导方针。

每年由地区竞赛主任在亚洲选择几个比赛地点举办亚洲赛区的竞赛,地区竞赛主任根据ACM国际大学生程序设计竞赛指导方针负责计划、组织和举行亚洲赛区的比赛。

亚洲赛区不按照政治概念来分割赛区,参加决赛的队伍代表学校,而不代表政治概念上的地区。

每个赛区竞赛指导委员会建议由以下成员组成:荣誉主席(可选),主席(赛区主任),联合主席(亚洲地区竞赛主任自动成为其中的一员),裁判长和裁判组,执行委员会主席(可选),系统(软件/硬件)委员会主席,报名主席,宣传主席,以及活动/执行主席每个赛区的竞赛指导委员会属于竞赛中心,可以执行适合于本赛区的附加规则。

但是,竞赛指导委员会制定的规则必须获得亚洲赛区竞赛主任的批准。

每个赛区的优胜队伍都能获得参加世界决赛的资格,并且会获得ACM及其赞助商的旅费支持。

【综合】Acm竞赛简介

【综合】Acm竞赛简介

Parity(ceoi99)(肖天)
• 建立sum数组,sum[i]表示从1到i之和是奇(true)还是偶 (false),sum[0]=false。这样题目中给的任意问题(a,b) 的答案都可以用sum[b] xor sum[a-1]表示。 • 开始我们并不知道sum[1..n]的值,不妨设为false,这时任意 sum[a],sum[b]都是独立的。对于每对问答(a,b,c),都可以 知道sum[b] xor sum[a-1]=c,由此把sum[b]和sum[a-1] 联系起来。这步操作可以用并查集完成,对于问答(a,b,c)如 果sum[a-1],sum[b]不属于一个集合就把它们并起来,否则 如果sum[a-1] xor sum[b]不等于c则说明出现矛盾,输出总 句数,退出。 • 对于不出现矛盾的sum数组,对于每个集合分为两个部分,我 们指定其中一个部分为true,另一个部分为false,则可以确定 sum数组,利用sum[i] xor sum[i-1]可以求出第i位的数字, 由于不同集合之间没有问答出现,所以此数列是一可行解,证 明算法正确。
• 但有时却是最好的办法
22
Pizza Anyone? (ZOJ 1219)
• 题目大意: 你需要为你和你的朋友们订一个皮萨。 每个朋友都会告诉你他们想和不想放进皮萨 里的东西。 你是否能订一个皮萨,让他满足每个人 至少一个条件。 假设一共有16种东西可以放进皮萨。
23
2 65536
16
是个对计算机很 小的数
3
ACM
ACM (Association for Computing Machinery) 成立于计算机诞生次年,是目前计算机学界中历史最 悠久、最具权威性的组织,是推进信息技术专业人员 和学生提高技巧的主要力量。ACM通过提供前沿技 术信息和从理论到实践的转化,为其全球7.5万名成 员服务,并已经成为信息科技领域的一个基本信息来 源。

ACM程序设计竞赛探讨

ACM程序设计竞赛探讨
陈 娟
( 电子科技大学计算机科学与工程学 院, 成都 6 0 4 ) 10 5
摘 要 :A M 程 序 设 计 竞 赛 ,是 由 A M 主 办 的 年度 性 的 国 际 大 学 生 程 序 设 计 比 赛 。 该 竞 赛 是 世 界 范 围 内 大 学 生 中最 具 影 响 C C
力,历 史最悠久 的国际计 算机 赛事。A M 程序设计竞赛的题 目对算法设计 、编程实现都 有较 高的要 求 ,需要参 赛者 掌握数 C 据 结构 、算 法设计和程序设计 方面的知识 。文章对 A M程序设 计竞赛的题 目进 行剖析 ,总结 出一 套实用的解题方法,分别 C
Dic s i n o s u so n ACM o r m m i g Co t s Pr g a n n et
C HEN J a n
( col f o ue cec n nier g nvri fEet ncSineadTc nl yo hn ,C egu 6 04 ,C ia Sho mp t SineadE g ei ,U i syo lc oi c c n ehoo f i OC r n n e t r e g C a hn d 10 5 hn )
1 引 言
A M 程序设 计 竞 赛 题 目包 括 5个 部 分 :描 述 C
( ec pi ) D sr t n 、输 入 (n u) i o Ip t 、输 出 ( up t 、样 例 Ot ) u 输 入 ( a l Ip t 、样 例 输 出 ( a l O tu ) Smpe n u ) Smp u t 。 e p
从输入输 出数据 的规 范化 、数 据结构的选择 、数据 类型 的转换 以及 运算的选择 4个方 面辨明题意 、快速设计算 法。

计算机专业相关的比赛介绍

计算机专业相关的比赛介绍

计算机专业相关的比赛介绍:1、ACM国际大学生程序设计竞赛ACM国际大学生程序设计竞赛标志ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。

经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。

赛事目前由IBM公司赞助。

背景和历史竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。

当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。

作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。

1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。

迄今已经举办了34届。

最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。

特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。

1997年,总共有来自560所大学的840支队伍参加比赛。

而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。

1980年代,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学。

在赛事的早期,冠军多为美国和加拿大的大学获得。

而进入1990年代后期以来,俄罗斯和其它一些东欧国家的大学连夺数次冠军。

来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届、2005年上海的第29届和2010在哈尔滨的第34届的全球总决赛上三夺冠军。

这也是目前为止亚洲大学在该竞赛上取得的最好成绩。

赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。

ACM校赛比赛题目及分析

ACM校赛比赛题目及分析

Problem A -- 超级难题Time Limit:1000ms Memory Limit:65535KBDescriptionACM程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。

大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。

比赛形式是:经过校级和地区级选拔的参赛组,于指定的时间、地点参加世界级的决赛,由3个成员组成的小组应用一台计算机解决6到8个生活中的实际问题。

参赛队员必须在5小时内编完程序并进行测试和调试。

此种大赛对参赛学生的逻辑分析能力、策略制定和脑力方面具有极大的挑战性。

大赛提倡在压力较大的情况下,培养学生的创造力、团队合作精神以解决竞赛的问题,从而挑选和发掘世界上最优秀的程序设计人才竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。

当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。

作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。

1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。

迄今已经举办了29届ACM/ICPC以团队的形式代表各学校参赛,每队由3名队员组成。

每位队员必须是入校5年内的在校学生。

比赛期间,每队使用1台电脑需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决8或10个问题。

程序完成之后提交裁判运行,并把运行结果及时通知参赛队。

而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球2009年的时候队伍A参加了ACM的区域赛,那次区域赛比赛总共有N个题,队伍A做了N个题中的M个。

队伍A 做第一题所用的时间为T1分钟,做第一题所用的时间为T2分钟,.......做第M题所用的时间为Tm分钟。

中国高校计算机大赛团体程序设计

中国高校计算机大赛团体程序设计

中国高校计算机大赛团体程序设计中国高校计算机大赛团体程序设计(ACM-ICPC)是一项旨在促进世界范围内大学间计算机暨创新、协作和竞争的竞赛。

ACM-ICPC起源于南达科他州立大学,自1977年以来已经成为世界上最著名的大学生程序设计竞赛之一,并被誉为世界计算机科学的奥林匹克。

中国高校计算机大赛团队程序设计竞赛是ACM的一个组成部分,旨在提高大学生们的计算机资讯知识,锻炼学生的数学思维能力、编程技巧、团队协作能力和问题解决能力等方面的综合素质。

中国高校计算机大赛团队程序设计竞赛由多个轮次组成,包括区域预赛和全国总决赛。

预赛和决赛均为全程英文考试,每队三人参加。

预赛主要是分地区进行比赛,晋级的队伍将进入总决赛。

全国总决赛由最优秀的大学生竞赛团队参加,每队三名队员。

比赛时间通常是五个小时到七个小时之间,考试内容涵盖算法、数据结构、图论、动态规划等计算机竞赛常见的问题。

ACM-ICPC竞赛旨在锻炼大学生们的团队合作能力,因此比赛中不仅会测试选手的计算机机能,也会测试选手的团队协作能力。

比赛过程中需团队成员相互配合,完成复杂问题的解决。

一般来说,大赛的整个比赛中选手在机器上作答,时间有限,而且不能使用笔记本电脑等外部设备。

因此,ACM-ICPC比赛既考察了选手的编程能力,也加强了团队协作能力。

同时,还有助于培养大学生们的创新、专业和协作能力,帮助他们更好地在竞争激烈的就业市场中脱颖而出。

对于大赛来说,最为重要的是选手们的能力提升。

大赛不仅考量选手的知识水平,更考察选手的思考能力、创新能力和动手解决问题的能力。

竞赛有助于帮助有志于软件开发和计算机科学领域的年轻人更好地了解和掌握自己所学的知识。

此外,由于ACM-ICPC比赛具有广泛的影响力和专业性,一些出色的选手甚至有可能在赛场上被各大知名公司和机构看中,成为优秀的IT人才。

总之,ACM-ICPC比赛不仅是一场旨在提高大学生计算机技能的竞赛,更是一场锻炼大学生综合素质、团队合作、自主学习和创新精神的大赛。

第1章 ACM国际大学生程序设计竞赛简介

第1章 ACM国际大学生程序设计竞赛简介
2012-3-15
ACM-ICPC的历史 的历史
• 该项竞赛从 该项竞赛从1970年举办至今已历 届(2010年) 年举办至今已历35届 年举办至今已历 年 • 两个阶段:区域预赛、世界总决赛 • 区域预赛:在上一年的9月~12月在各大洲举行 区域预赛:在上一年的 月 月在各大洲举行 • 世界总决赛:在每年的 世界总决赛:在每年的3~4月举行 月举行 • 各预赛区第一名自动获得参加世界决赛的资格?!
2012-3-15
其它教学参考书
编 号 1 2 3 4 5 6 7 书 名 作 者 王建德 柴晓路 吴文虎 王建德 吴文虎 王建德 吴文虎 王建德 吴文虎 倪兆中 王 帆 王建德 吴永辉 王建德 吴永辉 出版社 复旦大学出版社 清华大学出版社 清华大学出版社 电子工业出版社 清华大学出版社 人民邮电出版社 人民邮电出版社 出版 时间 1999.1 1997 1997 1998 1998 2008.7 2009.10 国际大学生程序设计竞赛试题解析 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––组合数学的算法与程序设计 克竞赛指导 组合数学的算法与程序设计 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––图论的算法与程序设计 克竞赛指导 图论的算法与程序设计 实用算法的分析与程序设计 ACM国际大学生程序设计竞赛试题与解 国际大学生程序设计竞赛试题与解 析(一) 实用算法分析与程序设计 程序设计中常用的解题策略
2012-3-15
其它教学参考书
编 号 8 9 10 书 名 作 者 吴文虎 赵 鹏 王晓东 卢开澄 出版社 清华大学出版社 电子工业出版社 清华大学出版社 出版 时间 1999 2003.1 2000.1 1993–1996美国计算机程序设计竞赛试题 美国计算机程序设计竞赛试题 与解析 计算机算法设计与分析 算法设计与分析

ACM国际大学生程序设计竞赛(ICPC)规则

ACM国际大学生程序设计竞赛(ICPC)规则

ACM国际大学生程序设计竞赛(ICPC)规则ACM国际大学生程序设计竞赛(ICPC)规则ACM国际大学生程序设计竞赛(International Collegiate Programming Contest)简称ICPC,是一项旨在提升大学生计算机程序设计技能和创新思维的国际性比赛。

作为计算机科学领域中最受重视的比赛之一,ICPC吸引了来自世界各地高校的精英学生参与。

本文将介绍ICPC的比赛规则,以帮助读者对比赛的组织和要求有更清晰的了解。

一、竞赛形式和规则ICPC的比赛形式基于团队合作,每组参赛队伍由三名选手组成。

在比赛开始前,每支队伍会收到一本竞赛规则手册,其中包含了比赛的具体规则和要求。

比赛中,选手们需要在给定的时间内解决一系列计算机编程问题。

选手们只能使用指定的编程语言进行编码,常见的语言包括C、C++和Java等。

二、比赛内容和题目类型ICPC比赛通常包含多个阶段,从区域赛到区域赛复赛,再到全球总决赛。

每个阶段的题目难度逐渐增加,从简单的问题到复杂的算法挑战。

比赛的题目通常涉及编程技巧、数据结构、算法设计和图论等领域。

选手需要运用他们的计算机编程知识和解决问题的能力来解决这些题目。

三、比赛计分方法ICPC比赛的计分方法以解决问题的数量为主要标准。

对于每个问题,选手需要编写一个程序来计算并输出正确的答案。

当程序输出的结果与标准答案一致时,选手将获得该问题的分数,并且可以解决下一个问题。

如果多支队伍在同一时间解决了同一个问题,那么根据解决问题所花费的时间来决定名次。

如果在规定时间内没有解决某个问题,队伍将不会得到该问题的分数。

四、答题时间和赛制ICPC比赛通常在一天内进行,每支队伍有固定的时间来解决所有的问题。

选手们需要在规定时间内尽可能多地解决问题,并且提交程序进行评测。

比赛过程中,选手们可以随时查看自己和其他队伍的实时排名。

最终,根据解决问题的数量和使用时间的少多,评委会确定出名次并颁发奖项。

acm和icpc

acm和icpc
上面的C++算法描述中,程序的跳出我们采用输入非法字符,一旦输入非法字符,则返回值为0(false)则,while循环结束,也就是输入输出流当中初学者不太常使用的流错误。
下面我们做一个简单的介绍:
对于输入输出流的状态,我们可以用类ios中的位测试流的状态。类ios是输入/输出类istream,ostream和iostream的基类。当遇到文件结束符时,输入流中自动设置eofbit.可以在程序中使用成员函数eof确定是否已经到达文件尾。如果cin遇到了文件的结束符,那么函数调用:
6.怎样才能成为一个ACM选手
门槛低,学会C/C++,就可以入手。
今后我们学校将大力开展相关的竞赛培训活动
需要同学们投入精力,主动进行相关的练习和学习。
耽误你打游戏、看电影的时间,却换来更多的“财富”
7.ACM-ICPC能给你带来什么
去外地参赛、甚至出境去新加坡、韩国、日本参赛的机会
Sample Input
1 5
Sample Output
6
Hint
Use + operator
如果选用的程序设计语言是 C++:
#include
int main()
{
int a,b;
while(cin >> a >> b)
ACM/ICPC 1.什么是ACM/ICPC
ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association fo的规模最大、水平最高的国际大学生程序设计竞赛。

ACM竞赛简介和入门

ACM竞赛简介和入门

ACM竞赛简介:ACM国际大学生程序设计竞赛是由国际计算机界历史悠久、颇具权威性的组织ACM学会(美国计算机协会)主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自已分析问题和解决问题的能力。

(网上有更详细的介绍,这里只做个简介)ACM竞赛特点:竞赛中一般有10道题,比赛时间为5个小时,每支参赛队伍由3名选手组成,可以携带诸如书、手册、程序清单等参考资料,对每一道题编完代码后,将代码提交裁判,每一次提交会被判为正确或者错误,判决结果会及时通知参赛队伍。

在规定时间内提交并通过题目数越多排名越靠前。

(时间5小时,题目8~12题,同题目数按所用时间多少排名)ACM题目限制:时间限制(即程序运行所用的时间)空间限制(即程序运行时所开内存的多少)ACM基本要求⏹英语⏹分析理解能力⏹算法⏹编码⏹合作ACM竞赛意义学习编程,并不是为了参加竞赛,ACM竞赛对于我们的意义更多的还是专业能力的提高。

在备战过程中,无论是对自己的编程能力,还是团队合作解决问题的能力,都是一种很好的锻炼机会。

一般而言,每个在做ACM竞赛的学生,他们的编程能力会比较出色。

与数学建模相比,由于ACM竞赛针对的是我们学计算机的同学,所以没有数学建模的比赛规模,但是依旧是国际上最有影响力的大学生竞赛之一。

ACM竞赛入门现在有很多大学有专门为ACM竞赛开设自己的测评网站,上面有很多贴近竞赛的题目。

比如说北大poj,浙大zoj等等。

所以选择一个自己专门练习的网站,我们都用北大的poj,然后开始自己在上面做题,和同学交流经验。

等到回到本部,要是有了一定的实力和基础,张震老师就会对我们进行选拔和组队,最后参加省赛和亚洲的区域赛。

⏹在poj上做20左右道简单的题目,熟悉ACM题目的基本特点。

(这里列出几道相对较简单的题目的题号:1000,1003,1004,1046,1207,1226,1504,1552)⏹熟悉了poj之后,按照poj的题目分类,买一本或借一本算法的书(暨大ACM校队的基本都用机械工程出版社的《算法导论》)开始学习,然后做算法的专题,一般每个专题做10~30道。

ACM简介

ACM简介

ACM程序设计大赛ACM程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。

大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。

比赛形式是:经过校级和地区级选拔的参赛组,于指定的时间、地点参加世界级的决赛,由3个成员组成的小组应用一台计算机解决6到8个生活中的实际问题。

参赛队员必须在5小时内编完程序并进行测试和调试。

此种大赛对参赛学生的逻辑分析能力、策略制定和脑力方面具有极大的挑战性。

大赛提倡在压力较大的情况下,培养学生的创造力、团队合作精神以解决竞赛的问题,从而挑选和发掘世界上最优秀的程序设计人才。

ACM/ICPC历史竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。

当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。

作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。

1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。

迄今已经举办了29届。

最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。

特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。

1997年,总共有来自560所大学的840支队伍参加比赛。

而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。

1980年代,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学。

在赛事的早期,冠军多为美国和加拿大的大学获得。

而进入1990年代后期以来,俄罗斯和其它一些东欧国家的大学连夺数次冠军。

来自中国大陆的上海交通大学代表队则在2002年美国夏威夷第26届和2005年上海举行的第29届全球总决赛上两夺冠军。

ACM国际大学生程序设计竞赛(简称ACMICPC) - 佛山科学技术学院实验教学中心

ACM国际大学生程序设计竞赛(简称ACMICPC) - 佛山科学技术学院实验教学中心

该项竞赛从1977年举办至今已历34届。 历届竞赛都荟萃了世界各大洲的精英,云 集了计算机界的“希望之星”。 受到国际各知名大学的重视,并受到全世 界各著名IT公司如Google、Microsoft(微软 公司) 、IBM等的高度关注,成为世界各国 大学生最具影响力的国际级计算机类的赛 事,ACM所颁发的获奖证书也为世界各著 名计算机公司、各知名大学所认可。
天津赛区(天津大学) 成都赛区(四川大学) 杭州赛区(浙江理工大学) 福州赛区(福州大学)

GDCPC是完全按照ACM/ICPC竞赛规则组织 的大学生程序设计竞赛,与国际完全接轨, 广东省内的高校在省内就能不受名额限制参 加亚洲区域预赛级水平的比赛。 ACM珠海赛。


佛山科学技术学院校内赛。

如何排名?
首先根据解题数目进行排名。 如果多支队伍解题数量相同,则根据总用时加上惩 罚时间进行排名。 总用时和惩罚时间由每道解答正确的试题的用时加 上惩罚时间而成。 每道试题用时将从竞赛开始到试题解答被判定为正 确为止,其间每一次错误的运行将被加罚20分钟时 间,未正确解答的试题不记时。

ACM/ICPC题目难度更大,更强调算法的高 效性,不仅要解决一个指定的命题,而且必 需要以最佳的方式解决指定的命题;它涉及 知识面广,与大学计算机系本科以及研究生 相关课程(如程序设计、离散数学、数据结构、 人工智能、算法分析与设计等)直接关联,对 数学要求很高,由于采用英文命题,对英语 要求高。
ACM简介
ACM国际大学生程序设计竞赛(简称 ACM/ICPC)是由国际计算机界历史悠久、 颇具权威性的组织ACM学会(Association for Computing Machinery)主办。 是世界上公认的规模最大、水平最高的国 际大学生程序设计竞赛。 其目的旨在使大学生运用计算机来充分展 示自已分析问题和解决问题的能力。

ACM-ICPC规则介绍

ACM-ICPC规则介绍

【资讯】ACM-ICPCACM国际大学生程序设计竞赛标志ACM国际大学生程序设计竞赛(英文全称:ACM Internati onal Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。

经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。

赛事目前由IBM公司赞助。

简要规则比赛期间,每队使用1台电脑需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决7到10个问题。

程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。

而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。

最后的获胜者为正确解答题目最多且总用时最少的队伍。

每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。

例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。

这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。

与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM-ICPC的特点在于其题量大,每队需要5小时内完成8道题目,甚至更多。

另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。

因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。

竞赛流程1.参赛队伍最多由三名参赛队员组成。

2.竞赛中至少命题6题,至多命题10题,试题描述为英文,比赛时间为5个小时。

3.竞赛可以使用的语言:C++、C、Java和Pascal。

湖南工业大学第三届ACM程序设计竞赛规则

湖南工业大学第三届ACM程序设计竞赛规则

附件1:湖南工业大学第三届ACM程序设计竞赛规则1、比赛时间为4个小时。

2、竞赛语言可选用C或C++语言。

3、每位选手使用一台计算机,所有选手使用计算机的规格配置相同。

用户环境竞赛时,选手所使用的计算机为如下环境:(1)MiCroSOftWindoWSXP(2)VC++6.0或DEVC++评测系统环境选手提交的程序将在此环境下进行评测:(1)WindowsServer2003(2)Mingw32-GCC∕G++4.3.34、参赛选手必须准时进入统一竞赛场地,先按照工作人员的指示,进入学校ACM在线评测系统登录。

当比赛开始时,即可通过链接打开题目,并根据页面提交程序。

在线评测系统竞赛时使用说明:(1)通过访问“OnlineJudge,,,使用用户名(USerID)和密码登录。

(2)竞赛开始,可以通过“CurrentContest”界面查看题目。

(3)选择题目,编写程序并通过“Submit”界面提交代码,注意选择对应的题号和语言(提交C程序选GCC,提交C++程序选G++)O(4)在“Status”界面查看评测结果。

(5)在“Standings”界面可查看即时排名。

(6)判决结果由在线评测系统自动反馈给参赛选手。

如果正确,就为该选手挂上一个气球,不同颜色的气球代表不同的题目。

(7)参赛选手可能收到的反馈信息包括:Waiting:系统正在做评判的准备工作,可以使用“刷新”来查看。

Accepted:你的解答是正确的,恭喜!!PresentationError:输出时表达错误,如果看到这样的结果,说明你的程序已经基本正确了,只是多打了换行符或多输出了空格,检查一下你的程序和题目要求吧,胜利就在眼前!WrongAnswer:你的程序正常运行并输出结果,不过是答案错误...RuntimeError:你的程序正常编译,不过运行时发生错误,请检查是否数组越界,指针操作违法……TimeLimitExceeded:在题目规定的时间内你的程序没能输出答案;MemoryLimitExceeded:你的程序申请了太多的内存,超出题目限制;CompiIeError:编译错误,请查看系统反馈的编译信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
星星告诉你他对每种饭菜的需求量,由于星星数学不好,希望你能编写一个 程序告诉他在第几个同学前插队刚好能打到所需饭菜。
输入格式
第一行,两个整数:M, N 。M 表示今日食堂提供的饭菜的种类数,N 表示队 伍中一共有多少同学。
第二行,M 个整数,其中第j个数Aj表示星星到达食堂时第j种菜的剩余量。 第三行,M 个整数,其中第j个数Bj表示星星对第j种菜的需求量,Bj = 0表 示星星对第j种菜不感兴趣。 接下来N 行,每行M 个整数,第i(1 ≤ i ≤ N )行第j(1 ≤ j ≤ M )个数Cij,表示 队伍中第i个同学对第j种菜的需求量。 其中1 ≤ N ≤ 100, 1 ≤ M ≤ 10, 0 ≤ Aj, Bj, Cij ≤ 100。
F.忘词
问题描述 星星喜欢唱歌,但是经常忘词。为此,星星的室友S.W.A.T非常苦恼,因为
他觉得听见美妙的歌声戛然而止是一件非常不爽的事。于是乎,他希望帮星星改 掉忘词的毛病。
在一个月黑风高的晚上,S.W.A.T侵入了星星的梦境。在星星的梦境里,他 发现了一个小木箱存放着星星第二天会唱的歌。木箱里放着厚厚的一摞纸。每张 纸上记录着一首歌的数据,数据分为三种情况:
1. 每个数字或逗号只能替换掉一个问号,也就是说,恢复后的数据和原始数据 的长度是相同的。
2. 每首歌的歌词数没有上限。
8
第9届南京大学ACM程序设计大赛
G.和谐区间
问题描述
在一个奇异世界里,存在着一个星星王国,所有的星星都在一条直线上。 在这个星星王国中生活着两种星星:左星星和右星星,左星星总是凝望着它 的右边,右星星总是凝望着它的左边,相互望见的左星星和右星星之间可能会相 互吸引,然后配对。 对于一串尚未配对的星星来说,总是从最右边的左星星(从右往左)开始配 对,并且每个左星星会选择它右边离它最近的一个尚未配对的右星星与之配对。 当配对结束后,有可能剩下尚未匹配的左星星和右星星,这种星星会烦躁、不安、 具有暴力倾向,一大堆这样的星星聚集在一起的话,甚至可能引发暴动,总之就 是不和谐了。 当然,在英明神武的星星国王领导下,整个王国之中还是比较和谐的。不过 有一次,国王希望到它的王国中去视察,大臣们出于国王的安全考虑,准备将国 王视察的区域用高高的围墙围起来。但是这样子的话,围墙内外的星星相互之间 就看不见了,围墙内的星星需要重新配对。当然,大臣们是不希望这个区域内出 现不和谐因素的,也就是说他们希望这个区域内的所有星星都能全部配对成功。 国王希望视察很多区域,但是由于国王的时间有限只能视察一个区域,所以 他给出很多候选区域并让大臣们最终确定一个区域作为视察的目的地。但星星王 国的居民实在是太多了,大臣们很难判断出这些区域会不会存在不和谐的因素, 希望你能编写一个程序来判断国王给出的每个候选区间会不会不和谐。
星际之中充满了未知的危险,星际旅行必须遵行一定的航线。星星希望你能 编写一个程序帮助他计算能否从一个中转站到达另一个中转站,并且计算出最小 的消费。假设飞船每行驶1单位距离消耗1单位体积的燃料,最初飞船的燃料箱中 没有燃料。
输入格式
第一行,两个整数n, m(1 ≤ n ≤ 1, 000, 0 ≤ m ≤ 10, 000),分别表示中转站的 数目和航线的条数。
众所周知,食堂的饭菜是很折磨人的,以至于星星只对某几种菜感兴趣。为 了能打到自己感兴趣的菜,星星只好采取一种邪恶的方案——插队。虽然星星的 朋友都很乐意让星星插队到他们前面以便和星星一起探讨“学术”问题,但是星 星还是不想影响到太多的同学。
星星通过某种神奇的方式得知了队伍中每个同学对每种菜的需求量,以及食 堂中每种菜剩余的量。
第9届南京大学ACM程序设计大赛
9th Nanjing University ACM Local Programming Contest
试题册
2011-05-07
第9届南京大学ACM程序设计大赛
A.打饭
问题描述
一天中午,星星来到了食堂吃午饭,如往常一样,食堂里已经排起了长长的 队伍。然而今天有一个很奇特的现象,队伍中的同学全都是星星的好朋友。
7
第9届南京大学ACM程序设计大赛
样例输入 ?,10,?????????????????,16,?? ?2?5??7?,?? ???????????????????????????????,??? 样例输出 impossible 12,50,70,71 1,2,3,4,5,6,7,8,9,10,11,100,101,102 提示
输出格式
对于每一个输入i,输出编号为i的图形,每个图形后面输出一空行。 每行后面多余的空格不要输出。
2
样例输入
0 1 -1
样例输出
X
XX X
XX
第9届南京大学ACM程序设计大赛
提示 每行后面多余的空格不要输出。
3
第9届南京大学ACM程序设计大赛
C.星形面积
问题描述 上题说到,星星狂热地迷恋一切X形和星形的东西。 星星希望得到自己所喜欢的星形的一切数据,包括面积。请你编写一个程序
火星人比较吝啬,他们并不会把所有的瓶子都装满燃料。他们拿到瓶子后, 会跑到燃料库里鼓捣一通,弄出一小点燃料来交差。星星当然知道他们会来这一 手,于是事先了解了火星人鼓捣的具体内容。火星人在燃料库里只会做如下的3种 操作:
• 将某个瓶子装满燃料;
• 将某个瓶子中的燃料全部倒回燃料库;
• 将燃料从瓶子a倒向瓶子b,直到瓶子b满或者瓶子a空(燃料倾倒过程中的 损耗可以忽略)。
星星继续在图形2的左上,右上,左下,右下四个方向上重复图形2,得到了 图形3;紧接着星星又依次得到了图形4,图形5。
可是当画到图形5的时候,星星的纸已经被画得满满的了。被逼无奈,星星只 好求助于你,你能写一个程序来帮助星星得到他想要的图形么?
输入格式 若干行,每行一个整数i(i ≤ 7),以−1结束。
1. 第一类情况,一首完整的歌的数据是这样表示的: 1,2,3,4,…,i,…,n 其中i表示这首歌的第i句歌词。
2. 第二类情况,对于一首不完整的歌,它的数据有可能是这样表示的: 1,10,11,20 也 就 是 说, 每 当 星 星 唱 这 首 歌 的 时 候, 都 只 会 依 次 唱 出 第1句, 第10句, 第11句和第20句,其他的歌词都会被星星跳过,并且星星自己不会感觉到 任何异常。
样例输入 32 3 4 4
样例输出 4
5
第9届南京大学ACM程序设计大赛
E.燃料购买
问题描述
在火星上因为燃料的问题耽搁了很长时间,星星回到地球后决定对燃料好好 研究一番,防止在以后的星际旅行中遇到同样尴尬的局面。
星星发现,为了方便星际旅行,人类在星际中建立了若干中转站,每个中转 站均有燃料出售,不同中转站燃料的售价不同。星星意识到,如果采取合适的策 略来购买燃料,他可能在一次星际旅行中省下一大笔钱。
4
第9届南京大学ACM程序设计大赛
D.瓶子
问题描述 星星去火星旅行,但是准备回地球的时候,他发现飞船的燃料不够了。 于是星星去向火星人借燃料,火星人答应了,要求星星用飞船上的瓶子来交
换。星星的飞船上共有N 个瓶子(1 ≤ N ≤ 1, 000),经过协商,火星人只要其中 的K个(1 ≤ K ≤ N )。星星将K个瓶子交给火星人之后,火星人用他们装一些燃料 给星星。所有的瓶子都没有刻度,只是在瓶口标注了容量,第i个瓶子的容量为vi (vi为整数,并满足1 ≤ vi ≤ 1, 000, 000, 000)。
输入格式
第一行,一个字符串,其长度小于等于100, 000,表示星星王国中星星居民的 居住情况。我们用左方括号“[”表示一个左星星,右方括号“]”表示一个右星 星,星星们从左往右从1开始编号。例如“][][”,编号为1,2,3,4的星星分别 为:右星星,左星星,右星星,左星星。
3. 然而,第二类情况并不是最严重的,有可能还会出现这样的数据: ?2?5??7?,?? 这 类 歌 是 星 星 不 常 唱 的 歌, 其 中 有 些 数 据 已 经 模 糊 不 清 了, 我 们 用 问 号(?)表示看不清的数据,每一个问号(?)所在的位置原本可能是一个数 字(0…9),也有可能是一个逗号(,)。每当星星唱这种歌遇到问号之后,星 星的大脑不知道如何处理,歌声就会戛然而止,也就是出现了所谓忘词的情 况。
现在S.W.A.T要做的事就是将这类数据恢复,即用数字或者逗号来替换掉每 一个问号,使数据变成a1, a2, a3, · · · , ai, · · · , an的格式。其中ai为正整数,并且满 足a1 < a2 < a3 < · · · < an。另外,已经能够看清的数据是不能更改的,否则可能 对星星的记忆造成严重的损伤。
输出格式
一个整数i,表示星星插队在第i个同学之前恰好能打到所需的菜。若星星无论 如何都无法打到所需的菜,输出-1,若无需插队就能打到所需的菜,输出N + 1。
样例输入
23 10 10 55 23 78 22
样例输出
2
提示
每位同学打菜时,即使第j种菜剩余量不足他所需时,也会打走剩余的所有 第j种菜,然而星星是希望轮到他的时候,他感兴趣的菜都剩余足够的份量。
XX
它仍然是X形的,星星狂热地迷恋一切X形和星形的东西。于是星星又干了如 下的事情:星星继续在上图的左上,右上,左下,右下四个方向上重复同样的图 形,得到如下的图形:
XX XX
X
X
XX XX
XX
X
XX
XX XX
X
X
XX XX
星星将刚才得到的图形编号为2,并将之前得到的图形编号为1,将一个“X” 编号为0。
为了能尽快恢复所有数据,S.W.A.T希望你能帮他编写一个程序来解决这个 问题。
输入格式 输入有若干行,第i行是第i首歌的数据。每行不超过500个字符。
输出格式 输出若干行,第i行是第i首歌的数据恢复后的结果,若数据无法恢复成为指
相关文档
最新文档