
--图论---
文章平均质量分 55
a1s4z5
这个作者很懒,什么都没留下…
展开
-
CodeForces Round #196 D Book of Evil
这个题感觉叉姐讲的灰常好,我就不献丑了偷偷放上链接具体代码就是两遍DFS感觉也没什么好讲的样子?那就看代码吧恩(点头)-------------------------我是代码的昏割线-------------------#includeusing namespace std;const int maxn = 112345;vector e原创 2015-12-01 11:49:44 · 357 阅读 · 0 评论 -
hdu 5739 Fantasia
给出一个点带权的图,定义一个联通分量的价值为所有点的权值的乘积定义一个点的价值为这个删掉这个点之后的所有联通分量的价值的和求所有点的价值偷偷贴上题解 首先求出所有的点双联通分量, 对于每一个点双联通分量SS, 新建一个节点ss, 向SS中每个节点vv连边. 这样一来, 新增的点和原来图中的点会构成一个森林(据说这个有个名字, block forest data structure). 很容易观察原创 2016-07-23 11:37:45 · 436 阅读 · 0 评论 -
poj 2942 Knights of the Round Table
建补图找点双联通分量对每一个分量二分染色,染色失败的打上标记最后没有打上标记的点就是所求的点重新学习了一下点双联通分量。并且学会了不用将边入栈的姿势#include<cstdio>#include<vector>#include<cstring>#include<algorithm>#include<stack>using namespace std;#define LL long lo原创 2016-07-23 11:26:01 · 250 阅读 · 0 评论 -
patest L3-007 天梯地图
中文题面给你一个有向图,每个边有两个边权,分别是时间和距离求出距离最短时的时间最小的路径时间最小时经过的点最少的路径我的想法还是很暴力的,在距离的最短路DAGDAG上跑一遍时间的最短路就好,但是比较难写,赛场上的时候也是强行写了四个spfa。。。回来想了想,其实这四个spfa是可以合成到一起的,然后就有了以下的代码第一次用C++ 的lambdalambda感觉真乃神器也#include<bits/s原创 2016-06-10 20:03:17 · 702 阅读 · 0 评论 -
SDUT 2170 The Largest SCC
一句话题意: 给出一个点数n≤1000n \le 1000 边数m≤20000m\le20000 的有向图,一共Q≤20000Q \le 20000次询问,询问相互独立,每次询问如果将第x(1≤x≤m)x (1\le x \le m)条边变为无向边时,图中最大的强连通分量所包含的点数为多少首先做一次强连通分量的缩点肯定是不吃亏的(笑 如果第xx条边的两个端点在同一个强连通分量内,其实这一次的更原创 2016-05-03 14:43:34 · 382 阅读 · 0 评论 -
poj 2186 Popular Cows
人生的第一个强连通的题诞生了~强联通缩点的理论基础感觉其实就一句话:图上的强连通是一个等价关系(如果不知道什么是等价关系的最好去看一下关系理论。再然后就是代码实现了。tarjan真乃神人也缩点什么的。。要不看看代码?这个题是求有向图中对所有点都可达的点的个数某结论是:DAG中当且仅当图中只有一个出度为0的时候才有被所有点可原创 2016-01-26 10:26:17 · 332 阅读 · 0 评论 -
hdoj 2063 过山车
一个简单的二分图匹配#include<bits/stdc++.h>using namespace std;const int maxn = 2200;vector<int>edge[maxn];void init(int n){ for(int i=0;i<=n;i++){ edge[i].clear(); }}int mat[maxn];bool vis[ma原创 2016-05-02 19:15:05 · 332 阅读 · 0 评论 -
Poj 1655 Balancing Act
求树的重心原创 2016-05-02 11:21:12 · 348 阅读 · 0 评论 -
Poj 3159 Candies
又是一个简单的差分约束第一次发现spfa不仅可以用队列,还可以用栈,感觉好神奇顺便存一下代码#include#include#include#include#includeusing namespace std;const int maxn = 31234;const int maxm = 151234;struct Edge{ i原创 2016-02-29 18:05:42 · 247 阅读 · 0 评论 -
Poj 2983 Is the Information Reliable?
一个简单的差分约束#include#include#include#includeusing namespace std;#define Edg pairconst int maxn = 1123;queueQ;vector edge[maxn];void init(int n){ for(int i=0;i<=n;i++){ edge[i].clea原创 2016-02-25 16:49:53 · 470 阅读 · 0 评论 -
Poj 1201 Intervals
又是一个简单的差分约束这个题还是偏一点思维的但是总的也没什么具体见代码吧#include#include#include#includeusing namespace std;#define Edg pairconst int maxn = 512345;queueQ;vector edge[maxn];void init(int原创 2016-02-26 19:27:43 · 257 阅读 · 0 评论 -
Poj 3694 Network
一句话题意:求一个无向联通图的桥的个数,动态加边原创 2016-02-24 10:10:27 · 340 阅读 · 0 评论 -
Poj 3592 Instantaneous Transference
人生的第二个强连通~每个点有一个权值,求缩点后,从起点出发的任意一条路径中权值最大的一条坑是如果一个点传送到图外的位置,这个边也要建起来具体见代码----------------我是代码的分割线------------------#include#include#include#include#include#includeusing原创 2016-01-26 15:42:45 · 537 阅读 · 0 评论 -
Poj 3114 Countries in War
人生第三个强连通题~强连通缩点后求最短路比较坑的是明明是多源最短路floyd居然被卡 可能是我的姿势不对 Orzspfa才过写强连通的题有一种莫名的精神愉悦感。要是能1A就好了QAQ-----------------------我是代码的昏割线-------------------------#include#inclu原创 2016-01-27 10:59:12 · 417 阅读 · 0 评论 -
Circle of Friends
感觉强连通缩点越写越顺手了(笑若是能在练习的时候每次都写一遍不要粘贴那真是极好的强连通缩点后bfs求最短路勉强算一个dfs套bfs?(笑----------------------------我是代码的昏割线----------------------#includeusing namespace std;const int max原创 2016-01-27 11:30:33 · 394 阅读 · 0 评论 -
poj 3321 Apple Tree
要是你想做这个题,你首先要知道一个基(shen)本(qi)的性质:树上的每个子树的dfs序都是连续的一个很显然的性质(知道了就不会忘了)然后就可以做这个题啦区间和用树状数组简单的维护一下就好我的代码维护的是这个子树的空节点(就是没有苹果的节点),那么有苹果的节点数目就是(子树大小)-(空节点数)(轮这个题的坑(1. 数据范围绝对不止1e5,我开到了1e6才能原创 2015-11-21 14:49:54 · 358 阅读 · 0 评论 -
Hdu 5765 Bonds
丢链接check(mask)check(mask)就是用bfsbfs的方式来检查maskmask是否联通具体的,donedone 是已经访问过的点集,diddid是可以访问的点集首先找一个maskmask的点startstart加到diddid里显然donedone是diddid的子集,每一次找到一个在diddid中并且不在donedone中的点stst,把和st直接联通的在maskmask中的点加原创 2016-07-29 21:52:30 · 840 阅读 · 2 评论