自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The life is like a dfs which can not be backtracked

  • 博客(16)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 ZOJ3795 Grouping 强连通缩点+图的最长路

给出m条a年龄大于等于b的信息,要求可以比较的两个人不能放在同一组,问最少能分成几组。 由于是大于等于,所以原图可能构成强连通分量,意思就是有很多人年龄相同(想想也该知道,总共10w个人,肯定有很多人年龄重复= =!)将原图缩点后,对新图记忆化搜索求最长路。 如果不缩点,会RE。。。 #include #include #include #include #include using na

2014-06-30 17:30:47 761

原创 hdu 1700 Points on Cycle 水几何

已知圆心(0,0)圆周上的一点,求圆周上另外两点使得三点构成等边三角形。 懒得推公式,直接用模板2圆(r1=dist,r2=sqrt(3)*dist)相交水过 #include #include #include #include #include using namespace std; #define eps 1e-6 typedef long long ll; inline double

2014-06-29 12:47:26 789

原创 hdu 3264 Open-air shopping malls 求两圆相交

对每个圆二分半径寻找可行的最小半径,然后取最小的一个半径。 对于两圆相交就只要求到两个扇形,然后减去两个全等三角形就行了。 #include #include #include #include using namespace std; #define pi acos(-1.0) #define eps 1e-8 #define maxn 50 int n; struct point{

2014-06-29 09:51:45 759

原创 poj 2142 The Balance 扩展欧几里得

首先求出通项 X=x+b/d*t Y=y-a/d*t (x,y为ax+by=gcd(a,b)的解,d=gcd(a,b))可知我们要求的最小的解是 abs(x+b/d*t) + abs(y-a/d*t) 设a>b不是的话,就交换a,b,我们发现上述关于t的方程是 |x+k1*t| + |y-k2*t|,由于a>b所以k2>k1,所以方程一开始右边减小的比左边增加的快 所以当y=k2*t的时候

2014-06-28 18:02:31 693

原创 hdu 2767 Proving Equivalences 强连通缩点

给出n个命题,m个推导,问最少增加多少条推导,可以使所有命题都能等价(两两都能互推) 既给出有向图,最少加多少边,使得原图变成强连通。 首先强连通缩点,对于新图,每个点都至少要有一条出去的边和一条进来的边(这样才能保证它能到任意点和任意点都能到它) 所以求出新图中入度为0的个数,和出度为0的个数,添加的边就是从出度为0的指向入度为0的。这样还会有一点剩余,剩余的就乱连就行了。 所以只要求出

2014-06-28 00:07:18 901

原创 poj 2723 Get Luffy Out 2-SAT

两个钥匙a,b是一对,隐含矛盾a->!b,b->!a 一个门上的两个钥匙a,b,隐含矛盾!a->b,!b->a(看数据不大,我是直接枚举水的,要打开当前门,没选a的话就一定要选b打开,没选b的话,就一定要选a打开) #include #include #include #include #include #include using namespace std; #define max

2014-06-27 23:22:43 581

原创 hdu 4612 Warm up 双连通缩点+树的直径

首先双连通缩点建立新图(顺带求原图的总的桥数,其实由于原图是一个强连通图,所以桥就等于缩点后的边) 此时得到的图类似树结构,对于新图求一次直径,也就是最长链。 我们新建的边就一定是连接这条最长链的首尾,这样就将原图的桥减少了直径个。 #include #include #include #include #include #include using namespace std; #

2014-06-27 18:35:20 757

原创 poj 3678 2-sat

2-sat经典建图,注意AND为1的时候,a=0要和a=1连边,b同理,因为此时a,b都不能为0。 OR为0时候,a=1要和a=0连边,b同理,因为此时a,b都不能为1。 #include #include #include #include #include #include using namespace std; #define maxn 1005 vector g[maxn*2]; b

2014-06-27 09:45:40 869

原创 poj 1698 Alice's Chance 拆点最大流

将星期拆点,符合条件的连边,最后统计汇点流量是否满就行了,注意结点编号。 #include #include #include #include #include #include #include #include #include #include #define eps 1e-12 #define INF 0x7fffffff #define maxn 1000 using

2014-06-26 19:41:49 725

原创 UVA - 11324 The Largest Clique 强连通缩点+记忆化dp

题目要求一个最大的弱联通图。 首先对于原图进行强连通缩点,得到新图,这个新图呈链状,类似树结构。 对新图进行记忆化dp,求一条权值最长的链,每个点的权值就是当前强连通分量点的个数。 /* Tarjan算法求有向图的强连通分量set记录了强连通分量 Col记录了强连通分量的个数。 */ #include #include #include #include #include usin

2014-06-26 16:09:53 619

原创 ural 1076 Trash 二分图最大权匹配(费用流实现)

统计每种垃圾的总和,若将K种垃圾倒入第F个垃圾桶,那么花费就是K-F(k)  (自己已经有的垃圾不用倒)。 然后就是简单的二分图建图。 #include #include #include #include using namespace std; #define MAXN 1000 #define MAXM 1000000 #define INF 0x3f3f3f3f struct

2014-06-26 11:27:16 954

原创 hdu 1533 Going Home 最小费用流

建图很简单 bfs预处理地图,距离就为费用 源点到所有m建边,流量1费用0 m到所有H建边,流量1费用为距离 H到所有汇点建边,流量1费用0 #include #include #include #include using namespace std; #define MAXN 10005 #define MAXM 1000000 #define INF 0x3f3f3f3 #defi

2014-06-26 10:35:37 831

原创 BZOJ 3562: [SHOI2014]神奇化合物 并查集+dfs

点击打开链接 注意到20w条边,但是询问只有1w,所以有很多边是从头到尾不变的。 首先离线处理,将从未删除的边缩点,缩点后的图的点数不会超过2w,对于每一次add或者delete,直接dfs看是否能从a走到b,然后维护一个ans。 数据不强,不然这种复杂度起码要跑10s。。 #include #include #include #include using namespace std; #

2014-06-13 23:02:59 1338

原创 wikioi 1034 家园 动态网络中的时间流(费用流)

由于随着时间的变化,网络中的边会变,所以普通的网络流无法解决这样的问题。假设T时刻全部运完。 为此,我们可以基于时间拆点,将所有点拆成T个点, 每个点对于下一个时刻的自己都连一条容量为INF边,费用为1的边,意思就是在当前空间站等待1个时刻。 每个点对于下一个时刻能到的点,连一条边,容量是这艘太空船的容量,费用是1。 源点连0时刻的地球,容量为k,所有的月球连接汇点。费用都为0。 每次找

2014-06-11 01:37:56 1306

原创 poj 1830 开关问题 高斯消元

a1  a2  a3     1号灯 a1  a2  a3     2号灯 a1  a2  a3     3号灯 假设按2的时候影响1 那么就是第一行第二列为1,意思就是通过2号灯的变化可以影响1号灯 再有第i行第i列也为1,意思就是通过i号灯的变化可以影响i号灯 高斯消元求解方程,会得到r个解,剩下的n-r就是自由变元,其实意思就是可以随便取,比如0*x=0,那么x就是自由的了。

2014-06-06 21:12:17 954 4

原创 bzoj 3566: [SHOI2014]概率充电器 树形DP

首先普及一个概率公式 P(A+B)=P(A)+P(B)-P(AB) 题意:一些充电元件和导线构成一棵树,充电元件是否能充电有2种情况, 1、它自己有qi%的概率充电 2、与它相邻的元件通过导线给它充电(导线有p%的概率导通) 求最终充了电的元件的期望 题解:首先可以将元件能否充电分成3种情况考虑, 1、它自己给自己充好了电 2、它的儿子方向给它传送了电 3、它的父亲方向给它传送了电

2014-06-06 15:38:46 2205

Jpcap 64位

Jpcap 64位可用,只包括了.dll和.jar

2015-03-24

Dancing_Links

Dancing_Links在竞赛中的应用

2014-01-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除