随笔分类 - Topcoder
Topcoder题解
摘要:DIV1 250水题。。。略。DIV1 500抽象题意:有一个图,指定其中亮点p1和p2,删掉途中其他的一些点,使得p1和p2最短路大于3。解法:使得p1和p2最短路为2的点一定要删掉。然后,别人说跑一遍最大流就完了,或者用2分图。。。。可是我不还不会。。。 坑。。待填。tag:graph
阅读全文
摘要:嗯。。。。今天的500确实比较好DIV1 250 模拟。。。略 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE 10 #line 11 "CubeWalking.cpp" 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include...
阅读全文
摘要:嗯。。。。还是应该坚持写题解的好习惯啊。。。DIV1 250pt 这难度是回到srm 300+的250了嘛。。。略 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE10 #line 11 "MagicalStringDiv1.cpp"11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #incl
阅读全文
摘要:DIV1 250pt题意:电视目前停留在第100台,有一个遥控器,可以向上或向下换台(需要按键一次),也可以按一些数字,然后直接跳到该台(需要按键次数等于数字数,不需要按确定键)。但是,这个遥控一些数字键是坏的不能按。问要换到x台最少需要按多少次。x 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #in..
阅读全文
摘要:DIV1 250pt题意:将一个数表示成质因子相乘的形式,若乘式所含数字的个数为质数,则称A为underprime。比如12 = 2*2*3,则含3个数字,是underprime。求A, B之间underprime的个数。A, B 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #..
阅读全文
摘要:DIV1 250pt题意:题意很难翻译。。。。其实就是一个暴力。。。在看到有一个限制条件的范围为1-10的时候就该想到是暴力,我却半天没想到。。。。tag:brute-force 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE 10 #line 11 "CandidateKeys.cpp" 11 #include 12 #include 13 #include 14 #include 15 #include 16 #...
阅读全文
摘要:DIV1 250pt题意:小球从一段折线斜坡上滚下来,告诉所用时间,求重力加速度。解法:二分答案模拟即可。tag:二分,simulation 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE 10 #line 11 "IncredibleMachine.cpp" 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #in...
阅读全文
摘要:DIV1 250pt题意:对于图G,有一些点和边,点中有一些点称为特殊点。问在所有特殊点最终不能处于同一个联通块的条件下,最多能给在图G中添加多少条边。解法:首先,对于图G,处理出它有哪些联通块,然后,不含有特殊点的联通块要连接到某一个含有特殊点的联通块上。连接哪一个能使添加的边最多呢?当然是连接含有点数最多的含特殊点的联通块。tag:graph, greedy 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE 10 #line...
阅读全文
摘要:DIV1 250pt题意:用数组A表示置换,由该置换得到数组B(B[0] = 0, B[i] = A[B[i-1]])。给定A,求一个A',使得由A'得到的B为单循环置换且A'与A的差距最小。定义A与A'的差距为,有多少个i满足A[i] != A'[i]。返回最小差距值。A.size() 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23
阅读全文
摘要:DIV1 300pt题意:有m种颜色的球若干个放在n个盒子里。每次操作可从一个盒子里拿出任意个球(不必同色),放进另一个盒子。要求终态为:1、最多有一个盒子里面装有不同色的球,该盒子成为joker box,也可以没有joker box;2、除了joker box,其他盒子要么为空,要么都为同色球;3、对于每种颜色的球,除了在joker box里的球,其余都在同一个盒子里,或者该颜色所有球都在joker box。 给定初态时n个盒子里含有每种颜色的球各多少个,问转移到终态最少需要操作多少次。解法:贪心。有一种操作是,首先选出一个joker box,然后将其他盒子里的所有球全部拿到joker ..
阅读全文
摘要:题意:定义一个数为k-smooth,如果它最大的质因子不超过k。给定n和k,求不超过n的,k-smooth的数有多少个。(k 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #include 24 #include 25 #include 26 #include 27 #include 28 #include 29 #include 30...
阅读全文
摘要:题意:按一定方法生成n个分数,求他们的和。n 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #include 24 #include 25 #include 26 #include 27 #include 28 #include 29 #include 30 #include 31 #include 32 #include 33 ...
阅读全文
摘要:DIV1 250pt题意:有很多袋子,里面装有苹果和橘子(也可能没有),给出每个袋子里有多少个苹果,多少个橘子。如果每个袋子里含有水果的总数都不小于x个,则可以从每个袋子里都拿出x个水果(拿出苹果和橘子的总数为x),将所有拿出的水果混合成一份礼物,问可能混合出的礼物的种数。 最多50个袋子,每个...
阅读全文
摘要:DIV1 250pt题意:称string s是vector words的ordered superstring,如果它满足:存在一个数列{x0, x1, x2...xm}(m = words.size()),使得words[i]与s中从xi开始的,长度为words[i].size()的字符串相同,且x0 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 ...
阅读全文
摘要:DIV1 250pt题意:每天晚上需要点蜡烛,且每晚蜡烛燃烧1cm,第i天晚上需要点i根蜡烛。第一天白天的时候,拥有一些蜡烛,用vectorcan表示他们的长度,问最多能烧几个晚上。解法:模拟+贪心,每次烧长度最长的k支蜡烛即可。tag:simulation, greedy 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 // END CUT HERE 10 #line 11 "OlympicCandles.cpp" 11 #include 12 #inc...
阅读全文
摘要:DIV1 250pt题意:给定整数n和k,问最少需要多少个n连接在一起形成的新整数t,使得t是k的倍数。如果不能形成倍数,输出-1。k 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #include 24 #include 25 #include 26 #include 27 #include 28 #include 29 #includ...
阅读全文
摘要:DIV1 250pt题意:给两个'a'-'z'的字符串,是否存在一个'a'-'z'的置换,使得能将一个字符串转化成另一个字符串。解法:题意即是求,s1和s2对应位置出现的字符在原字符串中出现的次数和每次出现的位置是否一样。可以将s1和s2分别转化成一个数列,数列的相等与否 和 是否存在那样的置换是等价的。tag:think 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "IsomorphicWords.cpp" 7 #include 8
阅读全文
摘要:DIV1 250pt题意:每个员工可以有几个直系上司,也可以有几个直系下属。没有直系下属的人工资为1,有直系下属的人工资为所有直系下属工资之和。求所有人工资之和。人数 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #include 24 #include 25 #include 26 #include 27 #include 28 #inc...
阅读全文
摘要:DIV1 250pt题意:给两个各含有一个*号的字符串s1和s2,可以用一个任意字符串代替*号(注意是串,不是只能用单个字符代替,也可以为用空串代替),问能否将s1和s2变为相同的字符串。如果能输出改变后长度最短的方案。解法:其实是很简单的暴力。。。。我代码写的慢有两个原因,一是string的substr不会用,另一个是因为s1和s2地位对等,可以通过交换他们的位置来省代码。tag:brute-force 1 // BEGIN CUT HERE 2 /* 3 * Author: plum rain 4 * score : 5 */ 6 /* 7 8 */ 9 //...
阅读全文
摘要:题意:有m个人投票,每个人在心里对所有候选者排了一个序,比如“210”,则他最想投2号,如果2号已经出局他会投1号,最后投0号,否则弃权不投。选举时进行多轮投票,知道选出winner或者所有人均出局。每轮投票以后,得票最高者所得票数如果严格大于该轮投票人数的50%,则他成为winner,游戏结束;若不大于50%,则将得票最低的人淘汰,如果有多人得票相同且最低,则一起淘汰出局,然后进行下一轮投票。解法:纯模拟。不过题意很不清晰,有两个地方我都弄了半天猜弄懂。。。就当学习官方题解的代码了。tag:simulation 1 // BEGIN CUT HERE 2 /* 3 * Author:...
阅读全文