摘要: 经典问题,货物供需平衡,很容易想到网络流,设源点和汇点,源点对每个仓库连一条capacity为仓库容量的边,cost为0,每个商店对汇点连一条capacity为需要的量的点,cost为0,每一个仓库与商店之间连一条capacity为无限大,cost为给定的边,直接跑最小费用最大流即可,求最大费用就去 阅读全文
posted @ 2020-02-07 23:19 GRedComeT 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 本题可以用最大流也可以用最大匹配(本质一样),用dinic最大流好建图,但码量大,匈牙利码量小,建图费点劲。 最大流:依旧是设一个源点一个汇点,对于每一个种类,连一条到汇点的边,capacity为需要的量,对于每一个试题,从源点连一条capacity为1的边到他,从他对每一个其所属的编号种类连一条c 阅读全文
posted @ 2020-02-07 22:26 GRedComeT 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 又是简单的状压BFS,直接代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&(-x)) typedef long long LL; const int maxm = 12; const int dx[] = 阅读全文
posted @ 2020-02-07 21:12 GRedComeT 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目中没有说球的上限是多少,只告诉了柱子,那么我们就应该以柱子为界去增加球,考虑将每两个能组成完全平方数的点连边,就形成了一个DAG(有向无环图),由于是DAG,可以转换为最小覆盖问题,即最多有n条路径(柱子数),求其能覆盖的最大点数,最小覆盖路径 = 节点数 - 最大匹配数,可以将其拆成二分图跑匈 阅读全文
posted @ 2020-02-07 17:06 GRedComeT 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 网络流(x) 状压(√) 初始状态为全1,合法状态为(state&b1)&(state|b1) == state && (state&b2)&(state|b2) == 0 下一状态为 state^=f1, state|=f2, 跑最短路就行了,我这里用的是spfa,dijkstra也可 阅读全文
posted @ 2020-02-07 13:45 GRedComeT 阅读(84) 评论(0) 推荐(0) 编辑