STL_ACM
Qiang__zi
...
展开
-
2 IBM 减 一
你或许听说过 Arthur C. Clarke 写的《2001:一次漫长的太空冒险旅行》这本书,或者Stanley Kubrick 演的同名电影。它讲的是一艘太空飞船被从地球送到土星。飞船被智能计算机 HAL 控制,在这个漫长的飞行中,全体船员都将进入睡眠状态,只有两个人是醒着的。但是在飞行过程中 HAL 的行为越来越奇怪,甚至准备杀死所有船员。我们不告诉你这个原创 2016-12-10 11:09:25 · 577 阅读 · 0 评论 -
22列书
Jim 很喜欢读书,他有很多书,有时他很难管理它们。因此,他请求你的帮助来解决这个问题。Jim 想以书名、出版年份和价格为关键词,按照排序标准把书进行排序。2.输入描述本题包含多个测试案例。 在每个测试案例的第一行是一个整数 n,表示Jim 有多少本书。n 是一个小于100 的正整数。接下去的n 行以Name Year Price 的格式给出了书的信息。Name 是一个只包原创 2016-12-10 14:56:56 · 254 阅读 · 0 评论 -
23两两比赛
我们学校正计划举行一场全新的激动人心的计算机程序设计竞赛。在每一轮比赛中,参赛者都是成对的,两两比赛。输者将被淘汰,赢者将自动晋级到下一轮比赛中。比赛一直进行到只剩下一个人为止,这个人就是冠军。在一轮比赛中,如果比赛人数不是偶数,那么将随机选择一个参赛者自动晋级到下一轮比赛中,而其他人则还是一对一地完成本轮比赛。竞赛委员会想知道要产生冠军需要进行多少轮比赛,以便可以准备好足够的竞赛题目。2原创 2016-12-10 15:01:12 · 816 阅读 · 0 评论 -
24Windows消息队列
消息队列是 Windows 操作系统的基石。对于每个进程,系统维持了一个消息队列。如果一个进程发生了某一事件,如单击鼠标,文本改变,系统将增加一个消息到队列里。同时,如果队列里不是空的,那么,进程将一直循环地从队列里按优先值抓取消息。注意,数值小意味着高的优先级。在本题中,要求你模拟消息队列,把消息放到消息队列中,或从消息队列里抓取消息。2.输入描述只有一个测试案例。每行是一条命令原创 2016-12-10 15:03:17 · 362 阅读 · 0 评论 -
25FatMouse的语言
我们都知道 FatMouse 不会说英语。但他现在已经有所准备,因为我们的国家正要加入WTO 了。感谢图灵(Turing),我们拿计算机来帮助它们。2.输入详细描述输入数据先是多达 100 005 条词典条目,再输入一空行,然后是多达100 005 个单词。每个字典条目在一行上,包含一个英文单词,后边跟着一个空格和一个FatMouse 的语言。FatMouse 的单词不会在词典里重原创 2016-12-10 15:04:01 · 257 阅读 · 0 评论 -
**26回文
一个规则回文是一个由数字或字母组成的字符串,将它从左读到右和从右读到左都是一样的。例如,字符串“ABCDEDCBA”就是一个回文,因为从左读到右和从右读到左都是一样的。现在给你一个字符串 S,你要计算出它有多少个回文子串。2.输入描述输入数据中有多个测试案例。每个案例是一个非空且长度不超过 5000 的字符串。处理到文件结尾。3.输出描述原创 2016-12-10 15:05:38 · 252 阅读 · 0 评论 -
27问题的根
给定正整数 B 和N,找出一个整数A,使得AN 最靠近B。(A 是逼近B 的第N 个根)注意AN 可能小于、等于或者大于B。2.输入描述输入数据由一对或多对 B 和N 的值组成。每对B 和N 打印在一行上,中间用一个空格隔开。B 和N 都为0 的那行表示输入的结束。B 的值是从1 到1 000 000 的闭区间,N 的值是1 到9 的闭区间。3.输出原创 2016-12-10 15:07:57 · 329 阅读 · 0 评论 -
28幻方
在娱乐性的数学里,一个n 度幻方共有n2个数字的排列,它们都是不同的整数,在一个方块中,n 个数字在所有行、所有列和所有对角线中的和都相同。例如,下图显示了一个使用了整数1~9 的3 度幻方。 给定一个填充好数字的方形,我们需要你来判断它是否是一个幻方。2.输入描述输入数据包含多个测试案例。每个测试案例的第一行是一个整数 N(0 N 面是N 行,每行有原创 2016-12-10 15:09:07 · 394 阅读 · 0 评论 -
30漂亮的数字
麦克非常幸运,因为他有两个幸运数字 3 和5。但他非常贪婪,他想列出所有的漂亮数字。所以,他声明所有能被3 或5 整除的正整数都算是漂亮数字。给你任何一个整数 N(1≤N ≤100 000),你能告诉麦克第N 个漂亮数字吗?2.输入输入包含一个或多个测试案例。每个测试案例是一个整数 N,占一行。3.输出对于输入数据中的每个测试案例,在单独一行上输出结果。4.输入样例原创 2016-12-10 15:14:53 · 980 阅读 · 0 评论 -
29半素数
素数的定义素数是指大于 1,且只能被本身和1 整除的正整数(只有1 和本身两个正因子)。例如,2,11,67,89 都是素数,但8,20,27 都不是素数。半素数的定义如果一个数能分解为两个素数的乘积,且大于 1,那么,这个数就是半素数。例如,6=2×3,2 和3 都是素数,那么,6 就是半素数。12 就不是半素数。你的任务就是判断一个给定的数字是否是一个半素数。2原创 2016-12-10 15:15:32 · 1721 阅读 · 0 评论 -
**31电话列表
给定一列电话号码,根据没有号码是其他号码的前缀,看看它是否符合要求。让我们来看看下面这列电话号码:- 紧急呼叫 911- 艾利丝 97625999- 鲍博 91125426在这个案例里,就不可能打电话给鲍博,因为当你拨了鲍博电话前三位数字的时候,电话服务中心将拨通紧急电话。所以,这个电话列表不符合要求。2.输入描述输入数据的第一行给出了一个整数,1≤原创 2016-12-10 15:16:28 · 659 阅读 · 0 评论 -
32 日 历
日历是一种测量时间的系统,从小时和分钟,到月和日,最后到年和世纪。小时、天、月、年和世纪这些术语都是日历系统中的时间测量单位。根据公历,也就是今天的民用历,能被 4 整除的年份是闰年,当然,不能被400 整除的世纪年要除外。因此,1700,1800,1900 和2100 这几个年份不是闰年,但1600,2000和2400 这几个年份则是闰年。给出自公元 2000 年1 月1 日原创 2016-12-11 17:07:43 · 1163 阅读 · 1 评论 -
货币总和
给出一列标准格式的货币数字,请计算出它们的总和。我们定义货币使用下面的格式:(1)货币以“$”符号打头。(2)如果货币小于1,则整数部分是一个“0”。(3)货币都有两位小数。(4)货币的小数点左边的每三位都用逗号隔开为一组(最左边的一组可能是一位或两位数字)。2.输入描述输入数据包含多个测试案例。每个测试案例的第一行是一个整数N(1≤N ≤10 000),表示该测试原创 2016-12-12 00:18:32 · 237 阅读 · 0 评论 -
Fatmouse交易
FatMouse 准备了M 磅猫食,准备与守卫仓库的猫们进行交易,仓库里有他最爱吃的食物JavaBean。仓库有 N 间房间。第i 间房间里有J [i]磅JavaBean 且需要F [i]磅猫食来交易。FatMouse不必把每个房间里的JavaBean 全部用于交易,相反,它可以付给猫F [i]*a%磅猫食,从而换得J [i]*a%磅JavaBean。其中,a 是一个实数。现在它给你布置一个家庭作原创 2016-12-10 14:55:55 · 1020 阅读 · 0 评论 -
20火星加法
在 22 世纪,科学家发现,火星上有智慧的居民。火星人都非常喜欢数学。每年,他们都要在火星上举行一次算术竞赛(ACM)。竞赛的内容是计算两个100 位数字的和,该大奖的得主是使用时间最少的人。今年他们还请地球上的人参加竞赛。作为地球上唯一的代表,您被发送到火星上,以展示人类的力量。幸好你带上了你的笔记本电脑,它可以帮助你做得很快。现在剩下的问题是,你只需编写一个简短的程序来计算两个给定的数字的总和原创 2016-12-10 14:54:52 · 465 阅读 · 0 评论 -
19错误纠正
一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数。下面这个4*4的矩阵就具有奇偶性:1 0 1 00 0 0 01 1 1 10 1 0 1它所有行的和是2,0,4 和2。它所有列的和是2,2,2 和2。你的工作就是编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0 修改为1,把1 修改为0)来原创 2016-12-10 14:53:48 · 296 阅读 · 0 评论 -
4 编 码
给定一个只包含“A”~“Z”的字符串,我们使用下面的方法给它编码:(1)将子字符串中的 k 个相同字符写成“kX ”,X 是子串中的字符。(2)如果子串的长度是 1,那么“1”要忽略。2.输入描述第一行包含一个正整数 N(1≤N≤100),代表测试案例的个数。下面 N 行包含 N 个字符串。每个字符串仅包含“A”~“Z”,且字符串的长度小于 100。原创 2016-12-10 11:19:16 · 526 阅读 · 0 评论 -
7 七个百分比编码
2.输入描述输入由一个或多个字符串组成,每个字符串由 1~79 个字符构成且在一行上,以“#”号结束。全部输入数据中,只在最后包含一个“#”号,不会出现在其他地方。一个字符串可能包含多个空格,但空格不出现在字符串的开头和结尾位置,也不会连续出现两个或两个以上的空格。3.输出描述对于每个测试案例,使用表中的7 种百分比将保留字符替代,每个测试案例输出一原创 2016-12-10 11:22:59 · 1440 阅读 · 0 评论 -
8数字根
一个正整数的数字根是通过计算该整数的各位的和产生的。如果一个整数的个位和是一位整数,那么这个数字就是该整数的数字根。如果该整数的各位和是两位或多位整数,那么,就需要重复计算各位的和,直到获得一位整数。例如,考虑正整数 24。把2 与4 相加得到6。由于6 是一个一位整数,所以,6 就是24 的数字根。现在再来考虑正整数39。3 与9 相加等于12。因为12 不是一位原创 2016-12-10 11:24:18 · 334 阅读 · 0 评论 -
9砖盒
小 Bob 喜欢玩砖盒。他把砖块一个叠一个地堆成不同高度的盒子。“看,我堆了一堵墙!”他告诉他的大姐姐Alice。“嗯,你该把所有的砖盒建得一样高。这样,你就建成了一堵真正的墙。”她回答。思索了一会,小Bob 认为她是对的。然后,他就开始重新摆放砖盒,一块接一块,最后,所有的砖盒都一样高了。但Bob 很懒,他想只移动最少数目的砖块来使所有的砖盒一样高。你能帮助他吗?2.输入描述输入原创 2016-12-10 11:25:04 · 307 阅读 · 0 评论 -
10 简化几何计算
有了计算机后,数学计算变得如此简单。考虑下面这个例子。你可能清楚直角三角形中,三条边a、b 和c 的长度(这里c 是最长的一条,叫做斜边)具有这个关系a*a + b*b =c*c。这个公式称为勾股定理。现在给出直角三角形的两条边,要求计算出第三条边。2.输入描述输入包含多个三角形的描述。每个描述在一行上,包括三个整数a、b 和c,表示三角形的三条边长。三个数中有一个是-1(未知边)原创 2016-12-10 11:26:00 · 412 阅读 · 0 评论 -
11反转文本
在多数语言中,文本都是从左写到右。然而,有些语言中,文本是从右读写到左。现在,你将来编写一个程序,把一段从左到右书写的文本自动转换为从右写到左的文本。2.输入详细情况输入包含多个测试案例。第一行是一个整数,代表测试案例的数目。每个测试案例由一行组成,至多70 个字符。但是,每行末尾的换行符不作为该测试案例的字符。3.输出详细情况对于每个测试案例,在一行上打印出输入行的反向文原创 2016-12-10 11:27:27 · 330 阅读 · 0 评论 -
12 反 转 单 词
对于一串单词,直接把它们输出在一行上,要把每个单词反转,但每个单词的位置不要改变。本程序包含多个测试案例!输入数据的第一行是一个整数 N,然后是一空行,后面跟着N 个数据块。每个数据块的格式在程序描述中说明了。数据块中有一空行。输出格式由 N 个输出块组成。每个输出块间有一空行。2.输入描述现在给你多组测试案例。第一行是一个正整数,表示接下来的测试案例的个数。每个测试案例是一行,包原创 2016-12-10 11:28:23 · 542 阅读 · 0 评论 -
13 一个简单的化学问题
你化学实验室的助手是一个非常热心的研究生,他很显然忘记了他们大学时期 101 次在化学实验室的经历。他想出了一个好点子,你可以在整个实验期间每分钟观察一次混合物的温度,这样,你就可以画出整个实验期间温度的改变比率。作为一个有前途的计算机科学家,你知道你能够将上述部分过程自动化,所以,你正编写一个运行在笔记本上的程序供化学实验期间使用。(在这样的化学实验室中,膝上电脑很少会发生故障)你编写的程序可以原创 2016-12-10 11:30:02 · 787 阅读 · 0 评论 -
14 反转的数字相加
古代喜剧演员Malidinesia 爱演喜剧而不爱演悲剧。不巧的是,绝大多数古代戏剧都是悲剧。因此ACM 戏剧顾问决定把一些悲剧改写成喜剧。显然,这将是一项艰难的工作。虽然所有内容都可以改成相对的内容,但戏剧的根本首先是要保持意义的完整性。以数字为例,悲剧中出现数字时,就必须把数字反转。反转的数字是指把阿拉伯数字反过来。也就是说,数字的第一位变成最后一位,其他位亦如此。比如,在悲剧中主角有1245原创 2016-12-10 11:30:56 · 809 阅读 · 0 评论 -
15 图 像 转 换
图像是以像素矩阵的形式存储在计算机里。在红绿蓝三色系统中,一个像素采用三个整数来表示。也就是说,一个像素的颜色以“r g b”的格式表示,这里,r,g 和b 是0~255之间(包括0 和255)的整数,分别代表该像素红、绿和蓝的程度。然而有时候,我们需要灰度图像而不是彩色图像。把 RGB 图像转换为灰度图像的一种最简便的方法是:把一个像素的红、绿和蓝的值都设置为一个相同的值(即(r+g+b)/3,原创 2016-12-10 11:31:46 · 396 阅读 · 0 评论 -
16 漂亮的草坪
Tom 的花园里有一块草坪。他把它分成N*M 的方块。一开始,所有的方块上都长着草。他剪去一些方块上的草,并认为仅符合这两个条件这块草坪才算漂亮:(1)不是所有的方块上都长着草。(2)两块剪去草的方块不能相连。如果两块方块共一条边,那么就算是连着的。现在问题来了:Tom 的草坪漂亮吗?2.输入描述输入包含多个测试案例!每个测试案例以包含两个整数 N,M(原创 2016-12-10 11:32:41 · 481 阅读 · 0 评论 -
17 DNA 排序
在一个系列中,“没排序”的一个尺度是无序对的总数。例如,在字母序列“DAABEC”中,“没排序”的尺度是5,因为D 比它右边的4 个字母大,而E 比它右边的1 个字母大。这个尺度被称为序列的倒位数量。序列“AACEDGG”只有一个倒位(E 和D)——即它几乎是有序的——然而,序列“ZWQM”则有6 个倒位(其序正好完全相反)。 你负责编排 DNA 字符串的序列(系列中只包含A,C,G 和原创 2016-12-10 14:51:45 · 870 阅读 · 0 评论 -
18 水 仙 花 数
水仙花数是数学界最有名最令人感兴趣的问题之一。如果一个三位数的各位的立方相加等于它本身,那么,这个数就是水仙花数。例如,153 是一个水仙花数,因为153 = 13 + 53 + 33。2.输入描述输入数据中有多个测试案例,每个测试案例包含一个三位数。3.输出描述一个测试案例占一行。如果给定的数是水仙花数,输出“Yes”,否则输出“No”。4.输入样原创 2016-12-10 14:52:54 · 252 阅读 · 0 评论 -
1 Quicksum
checksum 是扫描一个数据包并返回一个数值的一种算法。其思路在于,如果数据包被修改过,那么,checksum 也会立即变化。所以,checksum 常常用于侦查数据传输错误,证实文档内容的完整性和其他需要检查数据不被修改的场合。在本题中,你将实现一个 checksum 算法即 Quicksum。一个 Quicksum 数据包仅允许包含大写字母和空格,它通常是由一个大写字母开始原创 2016-12-10 11:08:30 · 958 阅读 · 0 评论