随笔分类 - 二分图—匈牙利算法
摘要:因为没有重复串,所以把有包含关系的串连边之后是个DAG,也就是二分图,就变成求二分图的最大独立集=n 最小点覆盖=n 最大匹配 关于包含关系,建出AC自动机,然后把串放上去找子串,但是如果每次都一路找到根就会T,所以每次只找最近的一个,并且对于没有结尾id的点承接father的id,这样就O(1)的
阅读全文
摘要:誰か 名前を呼んで 僕の
突然悲しくなるのは何故
阅读全文
摘要:この世界を動かす糸の先には気取った顔した君がいるのか
阅读全文
摘要:网格图黑白染色,然后能互相攻击到的点之间连边,跑匈牙利算法最大匹配,答案是好点个数 最大匹配(最大独立集) 注意pao的时候只从一种颜色的格子统计即可 cpp include include using namespace std; const int N=205,dx[]={2,2, 2, 2,
阅读全文
摘要:没啥可说的,就是一边属性一边道具建二分图,把两个属性都连到道具上,然后枚举匹配,如果无法匹配就输出,时间戳优化 cpp include include include using namespace std; const int N=1000005; int n,x,y,h[N],cnt,lk[N]
阅读全文
摘要:注意到怎么换都行,但是如果把某个黑方块用在对角线上,它原来所在的行列的的黑方块就都不能用 所以要选出n组不重的行列组合,这里用匈牙利算法做二分图匹配即可(用了时间戳优化) cpp include include include using namespace std; const int N=405
阅读全文
摘要:二分图最大点覆盖模型,因为对于一个点(x,y)显然只要选x或者y就好了,于是连边,跑最大匹配=最大点覆盖(不会证) cpp include include using namespace std; const int N=10005,inf=1e9; int n,m,h[N],cnt,con,lk[
阅读全文
摘要:经典二分图匹配问题。把每个点拆成两个,对于原图中的每一条边(i,j)连接(i,j+n),最小路径覆盖就是点数n 二分图最大匹配。方案直接顺着匹配dsf。。 cpp include include using namespace std; const int N=505,M=120005; int n
阅读全文

浙公网安备 33010602011771号