上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页
摘要: 这题和3358一模一样,建模形式直接不用变,就两点不一样,一是len变化了,加入y后再更新即可,还有就是可能会出现x0=x1的情况,即一条开线段垂直x轴,如果我们依旧按照上一题的建图方法,就会出现负权环,无法跑出答案,我们就可以把一个点拆成入点和出点,这样无论是否是不是垂直都可以一样建,注意开lon 阅读全文
posted @ 2020-02-09 19:31 GRedComeT 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 网络流建图好难,这题居然是网络流(雾,一般分析来说,有限制的情况最大流情况可以拆点通过capacity来限制,比如只使用一次,把一个点拆成入点出点,capacity为1即可,这题是限制最大k重复,可以联想到最大流问题,设源点汇点,限制的k就是其最大的capacity,其最大流一定<=k,跑出来一定满 阅读全文
posted @ 2020-02-09 14:53 GRedComeT 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 第一问可以直接DP来做,联想上一题,线性规划都可以化为网络流?我们可以借助第一问的DP数组,来建立第二问第三问的网络流图,考虑每一种可能,都是dp数组中满足num[i]>=num[j]&&dp[i]=dp[j]+1(i>j),每一种可能都是从dp为1的点递增到dp为第一问的值的点,那么我们就设一个源 阅读全文
posted @ 2020-02-08 22:55 GRedComeT 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 本题是最小费用流问题,据说所有的线性规划问题都能变成网络流,部分贪心,一天有2种情况,分别是干净毛巾与脏毛巾,那么一个点2个状态显然困难,就将一天拆成2个点,一个点表示干净毛巾,一个表示脏毛巾,依旧是设源点汇点,源点向每天的脏毛巾点连capacity为产生的脏毛巾数,费用为0,每天的干净毛巾向汇点连 阅读全文
posted @ 2020-02-08 19:22 GRedComeT 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 好像是最大权闭合图,也就是最大流最小割啦,找出最大流的路径输出,这题如何建模呢,一样的先设源点和汇点,源点向每个计划连capacity为赞助数的边,每个计划连相应装置capacity为无穷的边,每个装置向汇点连capacity为支付费用的边,这样,最大利润就是赞助总数-最大流啦,如何证?看两个例子 阅读全文
posted @ 2020-02-08 17:01 GRedComeT 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 网络流(×),多层图BFS(√) typedef long long LL; typedef pair<LL, LL> PLL; typedef pair<int, int> PINT; const int maxm = 115; const LL INF = 0x3f3f3f3f3f3f3f3f; 阅读全文
posted @ 2020-02-08 14:13 GRedComeT 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 经典问题,货物供需平衡,很容易想到网络流,设源点和汇点,源点对每个仓库连一条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) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页