摘要: 题目来源:http://poj.org/problem?id=1029题目大意: 与1013有一些相似之处。有N枚硬币,其中有一枚假币,重量与别的不同。现有一个精准天平。为了找出假币,我们把所有硬币编号1到N。每次在天平两端放等数目的硬币进行称量。每次称量的结果都被记录下来。写一个程序来找出那没假币。输入:第一行中,第一个数N(2':左边重 '=':两边一样重输出:找到的假币编号。若找不到,输出0.Sample Input5 32 1 2 3 4 8 9 using namespace std; 10 11 int main() { 12 int N; 13 in... 阅读全文
posted @ 2013-07-31 23:24 小菜刷题史 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1028题目大意: 模拟实现一个浏览器的“前进”和“回退”功能。由一个forward stack和一个backward stack实现。 打开浏览器时的正位于http://www.acm.org/。然后浏览器会接受下面四种命令: BACK:将当前页面压入forward stack,将backward stack顶部页面弹出,成为当前页面。若当前backward stack为空,忽略该命令; FORWARD:将当前页面压入backward stack,将forward stack顶部的页面弹出,作为当前页面。若当前forwar... 阅读全文
posted @ 2013-07-31 22:48 小菜刷题史 阅读(234) 评论(1) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1027题目大意: 题目说的就是现在蛮流行的手机小游戏popstar,求用贪心方法能得到多少分。 小球有三种颜色:R/G/B。横向、纵向相连的同色小球可以同时被消掉。消掉一些小球后,首先空格上面的小球会下落,填补空白,然后如果中间出现空的列,则空列右侧的小球左移,填补空列。 当m个球被消掉时,奖分(m-2)^2,若所有球都被消掉,奖分1000.贪心策略是每次选择消去连在一起数目最多的球。当有多个时,找最左最下的球所在的那一群。输入:第一行为测试用例数。每个用例由一系列字符串组成,表示初始时小球的分布。输出:每步选择的小球,每步... 阅读全文
posted @ 2013-07-31 22:32 小菜刷题史 阅读(543) 评论(0) 推荐(2) 编辑
摘要: 题目来源:http://poj.org/problem?id=1026题目大意: Bob和Alice使用了一种全新的编码方式进行通信。密钥是一组整数序列:a1,a2,...,an,每个数都大于0,小于等于n.编码方式为:第i个字符换至ai位置处。然后得到的编码再编码一次,如此重复k次。信息的长度小于等于n,如果程度小于n,则后面用空格补齐。写一个程序读入编码规则和待编码字符串,输出编码结果。输入:若干块数据组成,每块一个测试用例,第一行为串长n(1 8 #include 9 #include 10 11 using namespace std;12 13 int key[201];14 i.. 阅读全文
posted @ 2013-07-31 21:55 小菜刷题史 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1025题目大意: 有一些特工,在一天里要访问一座大楼。这座大楼里有10层,每层10个房间(按xxyy编号每个房间,xx为楼层,yy为房间号)和1个电梯。每个特工要按顺序访问一些特定的房间,并在各个房间里待一段时间。每个特工在一天的某个时间点到达大楼的1层,然后需要30s的时间进行登记之类的活动。到达30s后可以到达一楼的电梯或到达他想要去的位于1楼的房间门口。大楼的电梯每5s一班,每上升一层或下降一层需要30s。出于安全考虑,每个房间和每层的电梯都同时只运行一个人在内。当有多人在电梯或房间门口需要进入时需要排队。每个特工都有一个. 阅读全文
posted @ 2013-07-31 21:31 小菜刷题史 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1024题目大意: 有一个迷宫,迷宫的起点在(0,0)处。给定一条路径,和该迷宫墙的设置,要求验证该路径是否为唯一的最短路径,该种墙的设置中是否存在多于的墙,可结合图进行理解。 输入:第一行制定测试用例数。每个测试用例的第一行为两个正整数,指明迷宫的长和宽。接下来是给定的最短路径,用由L(左)R(右)U(上)D(下)组成的字符串表示。然后输入一个正整数m表示墙的个数。后接m行,每行四个整数,前两个整数和后两个整数分别组成两个坐标,表示该面墙把这两个点之间的路径隔断。输出:若符合条件输出CORRECT否则输出INCORRECT。Sa. 阅读全文
posted @ 2013-07-31 20:28 小菜刷题史 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1023题目大意: 有一种有趣的数字系统。类似于我们熟知的二进制,区别是每一位的权重有正有负。(低位至高位编号0->k,第i位的权值为2^i 或-2^i)输入:第一行给定测试用例数。每个用例的第一行为一个正整数k(1 8 #include 9 10 using namespace std;11 12 int main() {13 int ncase;14 cin >> ncase;15 for (int caseNo = 1; caseNo > k;18 char s[64];19 ... 阅读全文
posted @ 2013-07-31 19:25 小菜刷题史 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1022题目大意: 有一些4维的单位体积的立方体盒子,每个立方体有8个面。要用一个大的4为盒子将它们包起来,求最小的大盒子体积。输入:第一行为测试用例数。每个用例的第一行为单位立方体数目n。接下来的n行每行为一个立方体的信息。每行第一个数字为还立方体的编号,接下来的8个整数分别为对应面相邻的立方体的编号。该面没有邻居则为0.(给出的都是单一刚体。)输出:最小的能把这个由小4D立方体拼起来的形状的盒子的体积。Sample Input191 2 3 4 5 6 7 8 92 0 1 0 0 0 0 0 03 1 0 0 0 0 0 0. 阅读全文
posted @ 2013-07-31 17:20 小菜刷题史 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1021题目大意: 有一种在棋盘上玩的游戏,每一步,一个玩家可以从棋盘上拿走连续行或列的棋子。谁拿到最后一颗棋子就胜利。如下图所示的棋盘,玩家可以拿走(A), (B), (A, B), (A, B, C), 或 (B,F),等,但不能拿走(A, C), (D, E), (H, I) 或(B, G)。 仔细看上面两个棋盘,会发现其实他们是等价的。左边棋盘的取胜策略也可以用到右边的棋盘上。两盘棋子的连续块的形状是等价的,可以通过旋转、镜像和平移进行映射。程序的任务是判断两个棋盘是否等价。输入:第一行为测试用例数。每个测试用例的第一行.. 阅读全文
posted @ 2013-07-31 17:07 小菜刷题史 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1020题目大意:有一块边长为s的正方形大蛋糕,有n个客人,每个客人想分一块边长为si的正方形蛋糕。求这块大蛋糕能否恰好满足所有客人的需求而不浪费。输入:第一行为测试用例数。接下来每行的第一个数位大蛋糕的边长,第二个数位客人的数目n,接下来的n个数为每个客人想要的蛋糕的边长。输出:若能恰好分完输出“KHOOOOB!”,否则输出“HUTUTU!”Sample Input24 8 1 1 1 1 1 3 1 15 6 3 3 2 1 1 1Sample OutputKHOOOOB!HUTUTU!一开始用贪心方法做,即从大块的开始切,总是 阅读全文
posted @ 2013-07-31 16:37 小菜刷题史 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1019题目大意: 给定一个正整数i,写一个程序,求序列S1S2...Sk中的第i位(digit)。其中Sk为正整数序列1到k连接起来。例如,前80个数位的序列如下:11212312341234512345612345671234567812345678912345678910123456789101112345678910。输入:第一行表示有多少个测试用例。接下来的每行为一个正整数,即给出的i(1 ≤ i ≤ 2147483647).输出:每行对应一个输入,为求得的第i位数字Sample Input283Sample Outpu. 阅读全文
posted @ 2013-07-31 16:03 小菜刷题史 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1018题目大意: 某通讯公司想做一个特殊的通讯系统。该系统由若干个设备组成。每个设备我们可以自由选择不同的生产厂商。每个厂商生产的同一种设备的价格和带宽不同。系统的总带宽(B)是选择的所有设备的最小带宽,总价格(P)是所有设备的价格之和。目标是为每个设备选择一个厂商,使得总的B/P最大。输入:第一行一个整数代表测试用例个数。每个用例输入的第一个整数为设备数n(1 8 #include 9 10 using namespace std; 11 12 //带宽、价格对 13 class BV { 14 public: 15... 阅读全文
posted @ 2013-07-31 15:40 小菜刷题史 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1017题目大意: 某工厂有不同型号的货物要装箱。所有货物的高度都为h,底面大小分别为1*1,2*2,3*3,4*4,5*5,6*6.这些货物都要被装进高为h,底面6*6的盒子中。工厂希望用最少数目的箱子打包所有的货物。输入:由多组数据组成,每行一组。各数分别表示1*1,2*2,3*3,4*4,5*5,6*6货物的个数。6个0代表结束。输出:每行对应一个输入,输出一个整数,表示需要的最少的箱子数。Sample Input0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0 Sample Output2 1模拟水过. 阅读全文
posted @ 2013-07-31 15:07 小菜刷题史 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1016题目大意: 对一个非负整数定义一种运算(inventory):数这个数中各个数字出现的次数,然后按顺序记录下来。比如“5553141”有2个1,1个3,一个4,3个5,于是运算后为“21131435”,对于这种运算有的数字有着有趣的性质:如“31123314”,它运算后的结果和它本身是一样的(self-inventorying)。如果做j次inventory运算后,第j次迭代的结果是self-inventorying的,则称这个数是j步后self-inventory.此外,如果n进行j次迭代后,再进行k(k>=2)次迭 阅读全文
posted @ 2013-07-31 14:44 小菜刷题史 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1015题目大意: 有一个国家,法庭的判决由公众中选出的陪审团来进行。每进行一次审讯,就要选出一个陪审团。陪审团人选的选取规则如下:首先,从所有人中随机选取一些人。对于选中的这些人,控方和辩方给每个人打一个分(0到20)来表达他们是否喜欢这个人。0表示完全不喜欢,20表示特别喜欢。基于控方和辩方的两个打分,法官希望选出的陪审团对双方都最公平有利。用di表示辩方给候选人i的打分,pi表示控方给i的打分,现在要从n个候选人中选出m个人成为陪审团。用J表示{1,...,n}的一个m个元素的子集,D(J)表示sum(dk),k属于J,P(. 阅读全文
posted @ 2013-07-31 14:09 小菜刷题史 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1014题目大意: Marsha和Bill拥有一些弹珠。但是这些弹珠的价值不一样。每个弹珠的价值都是1到6之间的自然数。他们希望把这些弹珠分为两份,每份的总价值相等。然而,有时候是不存在这样的划分的(即使总的价值为偶数)。比如弹珠的价值分别为1,3,4,4.写一个程序判断一些弹珠是否可以被分为价值相等的两份。输入:每行代表一个测试用例,含6个非负整数。n1,...n6.ni表示价值为i的弹珠有多少个。测试用例最多20000个。输入以“0 0 0 0 0 0”结束。输出:对于每个用例,若可分,输出:"Collection # 阅读全文
posted @ 2013-07-31 01:00 小菜刷题史 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1013题目大意:有12枚硬币,其中有一枚假币。所有钱币的外表都一样,所有真币的重量都一样,假币的重量与真币不同,但我们不知道假币的重量是比真币轻还是重。现在有一个很准确的天平,我们可以用这个天平称3次来找到那枚假币。只要仔细选择三次称的方式,总可以再三次之内找出那枚假币。输入:第一行一个正整数n表示样例个数。接下来每三行为一个测试样例。每行为一次称的结果。每枚硬币被编号为A--L。称量的结果有三种,分别用“up”、“down”和“even”表示。第一个字符串表示天平左边的硬币,第二个字符串表示右边的硬币。左边和右边的硬笔数总是相等 阅读全文
posted @ 2013-07-31 00:39 小菜刷题史 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://poj.org/problem?id=1012题目大意:求解约瑟夫环问题(1-n个人站成一个圈,选择一个数k,首先从1开始数,第k个人被处决,然后再从下一个人开始数,第k个人被处决,如此循环)。假设环中由k个好人和k个坏人,前k为好人,后k为坏人。找出最小的m使得在有好人被处决前所有坏人都被处决掉。输入:每行1个k(0 8 9 using namespace std;10 11 int result[13];12 int k, m;13 14 //检验m是不是k的解15 bool isSolution(int k, int m) {16 int lastKi... 阅读全文
posted @ 2013-07-31 00:07 小菜刷题史 阅读(395) 评论(0) 推荐(0) 编辑