poj
银之夏雪
这个作者很懒,什么都没留下…
展开
-
poj2942圆桌骑士(点双连通分量+二分图染色法判奇圈)
之前一直不明白点双连通分量能用来干嘛,比如边双连通分量可以问加几条边能变成边双连通,这个题目是这样的,每个圆桌会议至少三个骑士参加,因为需要表决意见,所以骑士数目必须是奇数个,直到那些骑士互相憎恨,也就是不能坐在一起的,把能坐在一起的建边,求无法参加任何会议的骑士的个数,重点是任何会议,这点非常关键,这道题之前一直卡在这里,还有就是有的人属于好几种双连通分量,所以全部标记之后再减掉比较好,至于奇数个原创 2016-05-10 22:03:00 · 1930 阅读 · 0 评论 -
poj1523(割点)
这道题是求哪个点是割点,并且能把原图分成几块,add_block数组是求增加的所以还需要加1,然后就是我一直在PE,后来发现需要每输出一组后,有一个空行#include <iostream> #include <string.h> #include <stdio.h> using namespace std; const int MAXN=1005; const int MAXM=0x3f3f3f;原创 2016-05-06 14:57:01 · 752 阅读 · 0 评论 -
ACdream 1216Beautiful People(二重最长上升子序列)
题意是:有很多人,有智慧值和魅力值,必须每个人全都比别人高或者都比别人低才行,否则会打架,现在求出最多的不会打架的人数参加晚会 这道题目刚开始听比人说是第一重顺序排序,第二重逆序排序,然后求最长上升子序列,其实并没有想象中的那么简单,1 10,2 12,3 1这组数据如果按照上述说法的话排出来是错的,因为需要输出下标,很显然是错的,那么现在该怎么操作呢,需要一个path数组存放某些东西,刚开始的时原创 2016-06-16 16:09:09 · 313 阅读 · 0 评论 -
poj3159Candies差分约束系统(spfa+栈)
这道题目是典型的差分约束系统,小于等于是最短路 大于等于是最长路,核心在于:xj-xi<=bk,会发现它类似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v],即从u指向v建边,但是这道题很是魔性,一般我们用的都是spfa+stl的队列,然而这道题就是TLE到死,怎么都不好使,改成spfa+栈就过了,还有一点就是这道题目是我唯一遇到过的用cin取消同步也就是原创 2016-06-24 19:42:53 · 513 阅读 · 0 评论 -
poj1068Parencodings
水题一道,分两种情况考虑,当右括号前面是左括号直接就是1,否则就加入栈然后往前找#include <iostream> #include <string.h> #include <stack> using namespace std; int a[105],b[105]; char s[105]; int T,n; stack<int>q; int main() { cin>>T;原创 2016-05-08 14:05:25 · 320 阅读 · 0 评论 -
poj2159Ancient Cipher
水题一道,然而废了不少功夫,频率一样就行,排个序就OK了#include <iostream> #include <string.h> #include <algorithm> using namespace std; string s1,s2; int a1[150],a2[150]; int main() { while(cin>>s1>>s2) { int an原创 2016-05-08 13:59:30 · 337 阅读 · 0 评论 -
poj2240Arbitrage(最短路floyd)
这个题目是换钱和另一个有点类似,只不过这个没有手续费,这道题在读入的时候有点麻烦,我用的map和string,剩下的就好说了,看钱会不会变多,它没说从哪种变成哪种,那么就得是多源最短路用floyd,里面是汇率用乘法,然后看看是不是比原来的多就可以了#include <iostream> #include <map> using namespace std; string str[35],s1,s2;原创 2016-05-30 12:19:38 · 425 阅读 · 0 评论 -
最短路poj2253(floyd)
FroggerTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 31520 Accepted: 10164 DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who原创 2015-10-24 14:06:55 · 410 阅读 · 0 评论 -
poj1860Currency Exchange(最短路)
因为出的最短路专项,所以能想到,否则的话可能也想不到吧,最开始题意理解错了,以为是只要货币的数量大了就行,然后就spfa找只要超过了给的val就行啊,结果一直wa,后来发现应该是两种情况,第一是成正环,就是在这个环里,值会一直增加,超过n次就证明一定是存在这种环的,那么它变回原来的货币肯定会增大,第二种是不成正环的,就是正常操作一遍之后,会使原来的数变大#include <iostream> #in原创 2016-05-28 21:36:47 · 647 阅读 · 0 评论 -
poj1276Cash Machine(多重背包)
我的理解:首先对于一件物品来说,如果这个物品的容量数目已经大于背包的总容量了,那么这与完全背包问题没有区别了。因为完全背包问题就是可以任意的往背包里面放物品,而这时这个物品的容量数目已经大于背包总容量了,所以,也就相当于在背包总容量的范围内,这个物品是可以支持 任意地往背包里面放物品。 如果这个物品的容量*数目小于背包的总容量,那么正常情况下,需要一件一件往里面放找最大值的。但是它的方法是:将第i原创 2016-05-11 11:59:29 · 491 阅读 · 0 评论 -
poj1321棋盘问题(dfs)
这道题目和八皇后那种问题有点类似,dfs传的参数里面有行和到目前为止一共放了几个棋子,不过后者也可以不用传递,行是一定要传递的,通过这个来枚举列,最关键的一点是这个题目是问k个棋子的摆放方法,k不是n,那么如果当前这一行都没有满足条件的,或者在回溯过程中,这一行剩下的几列里面没有满足条件的,那么就跳出循环,递归到下一行,但是此时的棋子数量是不变的,然后这道题目差不多就是这么做的了#include <原创 2016-10-06 15:24:39 · 302 阅读 · 0 评论