随笔分类 -  图论

摘要:贪心+并查集 阅读全文
posted @ 2019-07-08 23:04 Hanasaki 阅读(99) 评论(0) 推荐(0)
摘要:与DFS、BFS不同的地方在于A*算法是一种启发性搜索,利用估值函数(f(n)=g(n)+h(n))以及优先级队列。 模板题:POJ-2449 阅读全文
posted @ 2019-06-24 20:02 Hanasaki 阅读(196) 评论(0) 推荐(0)
摘要:模板题(HDU-1269) 阅读全文
posted @ 2019-06-22 19:49 Hanasaki 阅读(343) 评论(0) 推荐(0)
摘要:例题:POJ 1716 - Integer Intervals 阅读全文
posted @ 2019-06-19 18:16 Hanasaki 阅读(130) 评论(0) 推荐(0)
摘要:贪心 阅读全文
posted @ 2019-06-14 14:36 Hanasaki 阅读(211) 评论(0) 推荐(0)
摘要:只有存在A到非A的环时才会说明题目矛盾 阅读全文
posted @ 2019-06-10 20:01 Hanasaki 阅读(91) 评论(0) 推荐(0)
摘要://队列优化 O(VE)const int MAXN = 1e5+5; const int INF = 0x3f3f3f3f; struct Edge { int from,to,dist; Edge(int u,int v,int w):from(u),to(v),dist(w){ } }; struct SPFA { int n,m; vectoredg... 阅读全文
posted @ 2019-06-10 18:40 Hanasaki 阅读(227) 评论(0) 推荐(0)
摘要://普通版本 O(n^2)int vis[n],d[n]; memset(vis,0,sizeof(vis)); for(int i=0;i edges; vector G[maxn]; bool done[maxn]; int d[maxn]; int p[maxn]; void init(int n){ this->n=n; ... 阅读全文
posted @ 2019-06-10 18:38 Hanasaki 阅读(94) 评论(0) 推荐(0)
摘要://黑白二着色-bicoloring(判断是否为二分图)int color[maxn]; bool bipartite(int u){ for(int i = 0; i < g[u].size(); i++){ int v = g[u][i]; if(color[u] == color[v]) return false; if(!color... 阅读全文
posted @ 2019-06-10 18:31 Hanasaki 阅读(156) 评论(0) 推荐(0)
摘要:int c[maxn]; int topo[maxn]; bool dfs(int u) { c[u] = -1; for(int v = 0; v < n; v++) if(G[u][v]) { if(c[v] < 0) return false; else if(!c[v]&&!dfs(v)) return false; } c... 阅读全文
posted @ 2019-06-10 18:25 Hanasaki 阅读(109) 评论(0) 推荐(0)