2011年7月30日

POJ2513-Colored Sticks

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304742541大致题意:给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的。解题思路:可以用图论中欧拉路的知识来解这道题,首先可以把木棒两端看成节点,把木棒看成边,这样相同的颜色就是同一个节点问题便转化为:给定一个图,是否存在“一笔画”经过涂中每一点,以及经过每一边一次。这样就是求图中是否存在欧拉路Euler-Path。回顾经典的“七桥问题”,相信很多同学马上就明白了什么是 欧拉路 了,这里不多作解释。由图论知识可以知道,无 阅读全文

posted @ 2011-07-30 22:26 小優YoU 阅读(361) 评论(0) 推荐(1)

POJ3253-Fence Repair

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304489412大致题意:有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长度给定各个要求的小木板的长度,及小木板的个数n,求最小费用提示:以35 8 5为例:先从无限长的木板上锯下长度为 21 的木板,花费 21再从长度为21的木板上锯下长度为5的木板,花费5再从长度为16的木板上锯下 长度为8的木板,花费8总花费 = 21+5+8 =34解题思路:利用Huffman思想,要使总费用最小,那么每次只选取最小长度的两块木板相加,再把 阅读全文

posted @ 2011-07-30 22:22 小優YoU 阅读(274) 评论(0) 推荐(0)

POJ2503-Babelfish

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304498724大致题意:输入一个字典,字典格式为“英语à外语”的一一映射关系然后输入若干个外语单词,输出他们的 英语翻译单词,如果字典中不存在这个单词,则输出“eh”解题思路:水题,输入时顺便用STL的map标记外语是否出现过,然后再用map建立“外语à英语”的映射,那么输出时先查找“出现”的标记,若有出现过,再输出映射,否则输出“eh”。用STL毫无难度(要真说难,也就是空行的处理有一点技巧),也可以用hash做,不过比较麻烦 1 //Memory Time 2 阅读全文

posted @ 2011-07-30 22:14 小優YoU 阅读(240) 评论(0) 推荐(0)

POJ3432-Count Squares

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1304781008POJ2002的山寨题,把数据规模从2002的 n=1000修改为n=2000就能AC了注意这种题一定不能图方便用STL的map标记,map效率不高,必定超时的.解题思路参看POJ2002:http://blog.csdn.net/lyy289065406/article/details/6647405 1 //Memory Time 2 //336K 313MS 3 4 #include<iostream> 5 using namespace std; 6 阅读全文

posted @ 2011-07-30 22:12 小優YoU 阅读(318) 评论(0) 推荐(0)

POJ2002-Squares

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304779855大致题意:有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少。相同的四个点,不同顺序构成的正方形视为同一正方形。解题思路:做本题数学功底要很强= =直接四个点四个点地枚举肯定超时的,不可取。普遍的做法是:先枚举两个点,通过数学公式得到另外2个点,使得这四个点能够成正方形。然后检查散点集中是否存在计算出来的那两个点,若存在,说明有一个正方形。但这种做法会使同一个正方形按照不同的顺序被枚举了四次,因此最后的结果要除以4.已知: (x1,y1) (x2,y2)则 阅读全文

posted @ 2011-07-30 22:08 小優YoU 阅读(465) 评论(0) 推荐(1)

POJ1840-Eqs

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304402322大致题意:给出一个5元3次方程,输入其5个系数,求它的解的个数其中系数 ai∈[-50,50] 自变量xi∈[-50,0)∪(0,50]注意: 若x1 =a, x2=b ,x3=c ,x4=d,x5=e时,与 x1=b, x2=a ,x3=c ,x4 =d, x5=e 代入方程后都得到值0,那么他们视为不同的解。解题思路:直观的思路:暴力枚举,O(n^5)题目Time Limit=5000ms,1ms大约可以执行1000条语句,那么5000ms最多执行500W次每个变量 阅读全文

posted @ 2011-07-30 21:56 小優YoU 阅读(219) 评论(0) 推荐(1)

POJ3274-Gold Balanced Lineup

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309220772大致题意:解题思路:经典题,不转化问题很难做,先根据官方的方法转化问题,把“求最远的两行间各个特征出现次数相等”转化为“求最远的相同两行”,再用Hash查找。这是官方解题报告——Consider the partial sum sequence of each of the k features built by taking the sum of all the values up to position i. The problem is equivalent to 阅读全文

posted @ 2011-07-30 21:47 小優YoU 阅读(2073) 评论(1) 推荐(0)

POJ3349-Snowflake Snow Snowflakes

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304831877大致题意:在n (n<100000)个雪花中判断是否存在两片完全相同的雪花,每片雪花有6个角,每个角的长度限制为1000000两片雪花相等的条件:雪花6个角的长度按顺序相等(这个顺序即可以是顺时针的也可以是逆时针的)解题思路:Hash吧!连加求余法 求key 值,链地址法解决冲突设雪花6片叶子的长度为len1~len6key=( len1+len2+len3+len4+len5+len6)%prime =( len1%prime +len2%prime +len3 阅读全文

posted @ 2011-07-30 21:40 小優YoU 阅读(349) 评论(0) 推荐(1)

POJ1002-487-3279

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1306848752大致题意:中文题,我就不废话了,不过据说某些RP低的同学会看到本题是英文题。。。解题思路:有两种处理方法:一、Hash+qsort法在输入时把字符号码转换为7位数字,用int保存,然后开两个8位数组vist和time,分别记录该号码是否出现过;若出现过,出现的次数是多少。把出现过2次或以上的号码先逐一存放到待输出数组sort_out输入完毕后,对数组sort_out快排,逐一输出这些号码及其出现次数即可。二、qsort法在输入时先把字符号码全部转换为7位数字,然后全部存入 阅读全文

posted @ 2011-07-30 21:38 小優YoU 阅读(1489) 评论(0) 推荐(1)

POJ2299-Ultra-QuickSort

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304259927题目大意:给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。解题思路:一看就是冒泡,交换一次记录一次就可以了但是n的范围达到50W,冒泡O(n^2)的复杂度铁定超时(即使有7000ms,其实这是一个陷阱)直接用快排又不符合题目的要求(相邻元素交换),快排是建立在二分的基础上的,操作次数肯定比在所要求的规则下的交换次数要更少那么该怎么处理?其实这题题目已经给出提示了:Ultra-QuickSort特殊的快排,能和快排Quicksort 阅读全文

posted @ 2011-07-30 21:32 小優YoU 阅读(1287) 评论(0) 推荐(0)

POJ1804-Brainman

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304317886大致题意:和POJ2299一摸一样,区别在于数据规模缩小了而已解题思路:重申一次:一个乱序序列的 逆序数 = 在只允许相邻两个元素交换的条件下,得到有序序列的交换次数若想通过借助归并排序求逆序数 可以参看我POJ2299的思路,几乎一模一样的程序,O(nlogn)算法http://user.qzone.qq.com/289065406/blog/1304259927不过由于规模的缩小,全部变量用int即可这题也可以直接求逆序数,无需借助归并排序把S[i]和s[i+1~n 阅读全文

posted @ 2011-07-30 21:27 小優YoU 阅读(225) 评论(0) 推荐(0)

POJ2388-Who's in the Middle

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300777154水题一道给定n个数,输出中间值(注意不是求平均)可以用sort,干脆快捷,但是注意排序起止位置也可以用quicksort,(最好用随机快排,尝试一下srand和rand) 勤力的同学可以写一下\(^o^)/~没什么要注意的题,不过真要注意的话,就不要用冒泡、插入、选择排序之类的O(n^2)算法,1W个数铁定超再送一些数据给大家1176 67 43 78 02 11 379 478 11 43 2193 1 38 222 800 43 45 69 987332310000 阅读全文

posted @ 2011-07-30 21:14 小優YoU 阅读(241) 评论(0) 推荐(0)

POJ1007-DNA Sorting

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309425334大致题意:输入m个长度为n的DNA序列,把他们按照逆序数从小到大稳定排序输出。PS:“稳定排序”就是当序列中出现A1==A2时,排序前后A1与A2的相对位置不发生改变。解题思路:没难度,先求各个字符串的逆序数,再按逆序数对字符串快排,用qsort()函数。虽然快排不是稳定的排序,但是只要在定义排序规则函数cmp做适当处理,a==b时返回0,即不处理a和b,就不会改变他们之间的相对位置了。 1 //Memory Time 2 //252K 16MS 3 4 #includ 阅读全文

posted @ 2011-07-30 21:12 小優YoU 阅读(359) 评论(0) 推荐(0)

北大ACM试题分类 - 实时更新我所有的解题报告链接

摘要: 转载请注明出处:http://exp-blog.com/2018/06/10/pid-136/ 2017年我已重新整理过此分类目录,可移步至最新版 -> 【北大ACM – POJ试题分类】 推荐文: 1、一位ACMer过来人的心得 2、ACM绝版资源公开( 参考书、模板、讲义、指导) 3、ACM国家 阅读全文

posted @ 2011-07-30 21:10 小優YoU 阅读(1703) 评论(0) 推荐(2)

POJ1936-All in All

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300626728在s2中找s1的子串而已,本来还想用LCS的,后来想想,这样空间消耗太大,用滚动数组又麻烦。。。毕竟列数最多高达10W = = 所以还是算了,直接模拟更快= =结论:水题一道,放开怀抱去模拟吧\(^o^)/~注意下标范围 int是够不到10W的,我用了long 没了 1 //Memory Time 2 //364K 0MS 3 4 #include<iostream> 5 #include<string> 6 using namespace st 阅读全文

posted @ 2011-07-30 20:53 小優YoU 阅读(178) 评论(0) 推荐(0)

POJ3080-Blue Jeans

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309012790大致题意:就是求k个长度为60的字符串的最长连续公共子串,2<=k<=10规定:1、 最长公共串长度小于3不输出2、 若出现等长的最长的子串,则输出字典序最小的串解题思路:纠结了几个月放着没做的题目。。一直以为要用KMP或者后缀数组来做。。。然后我就拼命学后缀。。。今天偶然发现直接 暴力 能够达到0ms的效果= =所以。。。暴力吧。。。不愧为初级的题。。。暴力思想很简单:开二维DNA[][]保存所有DNA序列1、 以DNA[0]为母版,顺次截取60个长度le 阅读全文

posted @ 2011-07-30 20:38 小優YoU 阅读(1310) 评论(0) 推荐(0)

POJ1035-Spell checker

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309051410大致题意:输入一部字典,输入若干单词1、 若某个单词能在字典中找到,则输出corret2、 若某个单词能通过 变换 或 删除 或 添加一个字符后,在字典中找得到,则输出这些单词,输出顺序根据 输入的那部字典的字典序3、 若某个单词无论操作与否都无法在字典中找得到,则输出空解题思路:没难度的字符串处理,1次AC暴力吧!模拟吧!基本思路就是逐个比较 待查单词 与 字典单词 的长度,当且仅当两者长度之差的绝对值<=1时才进行检查操作。Source修正:http://ne 阅读全文

posted @ 2011-07-30 20:33 小優YoU 阅读(847) 评论(0) 推荐(0)

POJ3436-ACM Computer Factory

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299340266提示:最大流问题 折磨了我3天的题。。。网上的前辈都推荐拆点做,但是我没有用拆点(感觉拆点很麻烦) 这道题我用了三种方法去做,但是结果却差强人意。。。。 【BFS+标号法+不拆点】 成功AC 【BFS+压入重标法+不拆点】(WA,不知道错哪里了,找不到反例) 【BFS+压入重标法+模拟拆点】(WA,不知道错哪里了,找不到反例) AC的程序我贴下面,后两个WA的代码我贴在AC代码下面,希望有达人帮我查出哪里出错了。。。无限感激题意:老实说,我完全看不懂题目在说什么= =。 阅读全文

posted @ 2011-07-30 18:23 小優YoU 阅读(267) 评论(0) 推荐(1)

POJ1459-Power Network

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299339754提示:BFS找增广链 + 压入重标法解题思路:多源多汇最大流问题题目给出很多都是废话,特别是符号s(u),d(u),Con还有那条公式都别管,混淆视听难点在于构图电站p(u)均为源点,用户c(u)均为汇点,中转站当普通点处理第一个误区是例图, 结点 和 边 都有x/y(流量和容量),这个很容易使人产生矛盾(因为学习最大流问题是,只有 边 才有流量和容量。 但是不难发现,题目所给的例图中有多个源点,多个汇点,多个普通点,只有源点和汇点才标有 x/y,普通点没有标x/y,而 阅读全文

posted @ 2011-07-30 18:16 小優YoU 阅读(1238) 评论(0) 推荐(0)

POJ3020-Antenna Placement

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299322779提示:别被图片的圈圈误导了,看清楚题目,'*'是城市,'o'是空地,椭圆的天线覆盖范围要覆盖的是城市'*',而不是覆盖空地题目大意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线?解题思路:思前想后,依稀可以认为是一道求二分图的最小路径覆盖问题(注意不是最小点覆盖)那么接下来需要确认的是,究竟是求 有向二分图的最小 阅读全文

posted @ 2011-07-30 09:41 小優YoU 阅读(261) 评论(0) 推荐(0)

POJ3041-Asteroids

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299322465解题思路:把方阵看做一个特殊的二分图(以行列分别作为两个顶点集V1、V2,其中| V1|=| V2|)然后把每行x或者每列y看成一个点,而障碍物(x,y)可以看做连接x和y的边。按照这种思路构图后。问题就转化成为选择最少的一些点(x或y),使得从这些点与所有的边相邻,其实这就是最小点覆盖问题。再利用二分图最大匹配的König定理:最小点覆盖数 = 最大匹配数(PS:最小点覆盖:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖图的所有的边 阅读全文

posted @ 2011-07-30 09:30 小優YoU 阅读(1040) 评论(0) 推荐(0)

POJ1094-Sorting It All Out

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299234850提示:拓扑排序这道题有隐含这一信息,每输入一对关系,如果判定有结果,则可以忽略后面输入数据,即使后面输入数据能改变结果,也不用管。所以应该每输入一个关系就去更新当前的图,然后进行一趟拓扑排序。一旦产生结果,再对后面的数据处理下,就可以输出结果。 所有可能的情况罗列:(独家经验原创,重中之重!可以说没有这些,这题就无法AC!)一、当输入的字母全部都在前n个大写字母范围内时:(1) 最终的图 可以排序: 在输入结束前如果能得到最终的图(就是用这n个字母作为顶点,一个都不能少 阅读全文

posted @ 2011-07-30 09:24 小優YoU 阅读(718) 评论(0) 推荐(1)

POJ3026-Borg Maze

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299324104提示:BFS+Prim大致题意:在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用最短的路径L连接所有字母,输出这条路径L的总长度。一格的长度为1,而且移动的方法只有上、下、左、右,所以在无任何墙的情况下(但“墙#”是必须考虑的,这里只是为了说明)任意两个字母之间的距离就是直接把 横坐标之差 加上 纵坐标之差 注意的是,可行的路为 字母 和 空格 不可行的路为 # 和 矩阵范围之外根据题意的“分离”规则, 阅读全文

posted @ 2011-07-30 09:21 小優YoU 阅读(398) 评论(0) 推荐(1)

POJ1258-Agri-Net

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299324000提示:又是一题求最小生成树的总权值,继续Prim.... 1 //Memory Time 2 //300K 32MS 3 4 #include<iostream> 5 using namespace std; 6 7 const int inf=100001; //无限大 8 9 int n; //农场数量10 int dist[101][101];11 12 int prim(void)13 {14 int s=1;15 int m=1;16 bool u 阅读全文

posted @ 2011-07-30 09:18 小優YoU 阅读(209) 评论(0) 推荐(0)

POJ2485-Highways

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299323790提示:题意很简单,就是求最小生成树的最大边。继续Prim吧O(∩_∩)O 1 //Memory Time 2 //656K 766MS 3 //思路、解法都和POJ1789基本一致,只是多了一个判定条件 4 5 #include<iostream> 6 using namespace std; 7 8 const int inf=65540; //无限大 9 int dist[501][501];10 int n; //村落数量11 12 int prim( 阅读全文

posted @ 2011-07-30 09:16 小優YoU 阅读(277) 评论(0) 推荐(0)

POJ1789-Truck History .

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299323607题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。例如有如下4个编号:aaaaaaabaaaaaaabaaaaaaabaaaa显然的,第二,第三和第四编号分别从第一编号衍生出来的代价最小,因为第二,第三和第四编号分别与第一编号只有一个字母是不同的 阅读全文

posted @ 2011-07-30 09:15 小優YoU 阅读(1088) 评论(0) 推荐(0)

POJ2240-Arbitrage

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299339309提示:本题需要建立容器,建立字符串到int的映射(一一对应)关系,把然后字符串作为数组下标,模拟数组题意:求自身到自身的最大转换率。 最简单的方法就是floryd算法变形,求最大路径后,求最大环,看它是否满足条件。 每一个结点都必须有到自身的环(不甚清楚原因)。注意:该double的地方一定不能为int,切记!!! 1 //Memory Time 2 //276K 79MS 3 4 #include <iostream> 5 #include<map& 阅读全文

posted @ 2011-07-30 01:45 小優YoU 阅读(290) 评论(0) 推荐(0)

POJ1125-Stockbroker Grapevine

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299338996提示:最短路问题,Floyd算法,相比于Bellman和Dijkstra,我认为是最接近人类自然思维的算法,O(∩_∩)O哈哈~说真的,我第一次做Floyd的题目时,我没有看过Floyd算法,我自己把Floyd推导出来了。。。至于数据的存储,就用邻接矩阵,只要对矩阵上的时间进行修改就行了,相对比较方便。 问题重述 描述 众所周知,证券经纪业依靠的就是过度的传言。您需要想出股票经纪人中传播假情报的方法,让您的雇主在股票市场的占据优势。为了获得最大的效果,你必须蔓延最快的方 阅读全文

posted @ 2011-07-30 01:42 小優YoU 阅读(684) 评论(0) 推荐(0)

POJ2253-Frogger

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299339470提示:唉。。不说了,又是Floyd...注意精度就是了题目大意:给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。Floyd算法用Floyd算法求出两两最短路,再求出从每个点开始的最长路,最后从这n个最长路中求出最小的那个即为所求。 1 阅读全文

posted @ 2011-07-30 01:39 小優YoU 阅读(554) 评论(0) 推荐(1)

POJ1062-Expensive dowry

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299338542提示:难得的中文题。。虽然语言相通但是不好解决。。。都说便宜没好货,这是真的= =最短路问题,dijkstra算法的运用。。。很多同学对dijkstra有一种与生俱来的恐惧,首当其冲就是它的名字。。说实在我现在也不知道怎么念它O(∩_∩)O哈哈~其实dijkstra很简单的,最难也就它的名字,不懂得同学去翻书,这里我不解释dijkstra,我只说一个我认为能够很好理解dijkstra精髓的关键点: 新源点合并到旧源点时,新源点到旧源点的边权的移交(也可理解为松弛)弄清了 阅读全文

posted @ 2011-07-30 01:36 小優YoU 阅读(268) 评论(0) 推荐(1)

POJ3259-Wormholes

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299075341提示:利用虫洞的时光旅行,很有趣的一道题。涉及到图论的知识,关键是构造图,用Bellman-Ford算法找出负权环Bellman-Ford算法核心在于松弛,具体可以百度,这里就不重复前人的智慧了O(∩_∩)O哈哈~需要注意的就是输入说明Input这部分,很多人读不懂这段题意:正权(双向)边部分:Line 1 of each farm: Three space-separated integers respectively: N, M, and W Lines 2~M+1 阅读全文

posted @ 2011-07-30 00:01 小優YoU 阅读(349) 评论(0) 推荐(0)

导航