图
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
(欧拉回路)Play on Words(P1386)
自己一开始就写得比较复杂了,,参看了之后,还是这样的思路简单明了 #include #include #include #include #include #include #include using namespace std; #define N 26 int n,cnt; bool vist[N]; bool map[N][N]; char s[1001];原创 2012-05-22 12:47:23 · 4483 阅读 · 0 评论 -
(topo)Sorting it all out(P1094)
这个题就是想要练一下TOPO图的排序,可是一直对题意有误差,最后在discuss里看得到了灵感,,,,逻辑顺序很重要啊, 做了几个小时,,值得表扬,, #include #include #include #include #include #include using namespace std; #define N 27 int n,m; int tt; int原创 2012-05-21 21:58:39 · 496 阅读 · 0 评论 -
(简单LCA) Nearest Common Ancestors(P1330)
题 意 :给出一棵树,求给定两个点的最近公共祖先 思路:就是把树用DFS搞出来的同时用并查集分别记录每个点的上一个祖先。 分别找到两个点的最近汇合点即可 #include #include using namespace std; #define N 10011 vector v[N]; int go[N]; int ans[N]; int f[N];原创 2013-07-09 21:48:52 · 592 阅读 · 0 评论 -
(最大流)Drainage Ditches(P1273)
注意,可能有重边; #include #include #include #include #include using namespace std; #define N 222 int n,m; int path[N]; queue q; int map[N][N]; int flow[N][N]; int main() { freopen("in.txt","r",s原创 2012-07-03 16:48:25 · 338 阅读 · 0 评论 -
(欧拉回路)Watchcow(P2230)
#include #include #include #include #include #include #include using namespace std; #define N 10001 vector v[N]; int n,m; void dfs(int k) { int i,j; while (v[k].size()) { j=v[k][v[k].siz原创 2012-05-22 13:11:03 · 4842 阅读 · 0 评论 -
(spfa) Wormholes (P3259)
题意:求一个图中是否有负环 网址:http://poj.org/problem?id=3259 这里有两种比较合适的解法。 首先给出floyd算法(自己暂定先这么叫)的吧。 #include #include using namespace std; struct pp { int from,to,v; }p[15004]; int dis[1001];原创 2014-01-02 00:21:07 · 839 阅读 · 0 评论 -
(spfa) XYZZY (P1932)
题 意:一个单向图,第一个结点有权值。每到一个结点加上该点的值。 当在该点加上的权值为正数是才可以向下一个点移动。 求从结点1是否能到达结点N 解法:先用floyd计算出每点是否可到N点。再spfa 特别注意:对于每一个结点的总权值更新时要检查是否该点可达N点。 如果不可达N点,原创 2014-01-02 22:03:05 · 903 阅读 · 0 评论 -
(Dijkstra+bellon_ford+floyd) Silver Cow Party (P3268)
题意:给出N个点,M条单向路。求每个点到指定的一个点去开party, 求所有来回最短路中最长的一条 解法:用dijstra求两次,一次是开party点每一个点的最短距离。 再把路径的方向倒一下再求一次即可。 网址:http://poj.org/problem?id=3268 #include using namespa原创 2014-01-03 14:09:20 · 1094 阅读 · 0 评论