题目大意:给出学生的数目和学习小组的数目,学生参加小组需要交纳费用,每个小组会支出C[i]*cnt[i]^2。每个学生可以参加k个小组,问最多的学生参加时,最小支出费用。
思路:如果不算后面那个什么鬼的条件的话,见图十分显然。
S->每个学生 f:k,c:0
每个学生->每个学习小组 f:1,c:-F[i]
每个学习小组->T f:1,c:1 * C[i],3 * C[i],5 *...
分类:
其他好文 时间:
2015-01-22 15:32:21
阅读次数:
167
题解:裸费用流,不过略有点坑。。。因为只要求参加的人数多,并不要求参加的小组总和多。所以我们可以不把k流量流满,又因为是最小费用最大流,所以我们连i-t容量为k-1的边即可。代码; 1 #include 2 3 #include 4 5 #include 6 7 #include...
分类:
其他好文 时间:
2015-01-21 19:49:24
阅读次数:
356
题解:这貌似是很久以前的一个坑?边有下界,有源有汇,源向1连边,每个点都可以向汇连边。然后给点与点的边加上下界和费用,求最小可行费用流。但是!!!T了!!!因为每次增广只能+1容量,得增广5000+次。。。T_T再一次栽在费用流上!以后学了zkw再回来A这道题。挖坑待填。。。 1 #include ...
分类:
其他好文 时间:
2015-01-17 12:31:54
阅读次数:
300
题目大意:给出一个表格,每个表格指向周围四个格子中的一个,问你可以改变一些格子上的指向,问让所有格子都在圈中最小需要改变多少。
思路:所有的格子都在圈中,由于每个格子只能有一个出边,所以就要保证所有格子都有一个入边。建立费用流的模型,所有点向汇点连流量1费用0的边,表示要接受一个入边。S向所有点连一条流量1费用0的边,表示一条出边。一个格子向周围四个格子连边,流量1,如果方向与当前方向相...
分类:
其他好文 时间:
2015-01-16 10:09:34
阅读次数:
166
题目大意:给定n道菜和m个厨师,第i道菜需要p[i]份,第j个厨师做第i道菜需要时间t[i][j],求最长总等待时间
一个厨师做的倒数第一道菜对答案的贡献是时间的一倍,倒数第二道菜对答案的贡献是时间的两倍,以此类推
厨师们怒了!发动符卡·禁忌『p重存在』!
将每个厨师拆成Σp[i]个点,每道菜向每个厨师的第i个点连一条流量为1,费用为时间的i倍,每个点向汇点连一条流量为1费用为0的边,跑最小...
分类:
其他好文 时间:
2015-01-12 17:39:58
阅读次数:
307
那个一看就觉得不是费用流就是最小割。
想想就确定最小割了。
考虑到一个人,文理不可兼得,不妨先建点,然后向源点(文科),汇点(理科)连边,流量(也就是割)是对应喜悦值。(这里的想法是先建个差不多的,有漏洞再拆点啊,建辅助点啊什么的)
然后再考虑一对朋友之间的共文理喜悦值:
如果都选文,那么需要割掉双方都选理的喜悦值,
如果都选理,那么需要割掉双方都选文的喜...
分类:
移动开发 时间:
2015-01-11 13:38:50
阅读次数:
955
题目大意:给出一张竞赛图中的其中几条单向边,剩下的边随意定向。问最多可以形成多少三元环。
思路:对于任意三个点来说,他们组成了三元环,当且仅当这些点的入度=处度 = 1。如果没有组成三元环,只需要改变这其中任意一条边的方向,使得一个点的入度变成2,一个点的出度变成2。我们只需要算出有多少三个点中有一个点的入度为2的就可以了,并最小化这个东西。
通过公式:ans=C(n,3)-ΣC(de...
分类:
其他好文 时间:
2015-01-07 20:59:19
阅读次数:
206
题目模型出的真心神。
需要好难才能推出来。
本来打算写一篇好的题解,但是状态实在不好,没弄会这道题。
只能先扒建边留个坑了。
据说“单纯形算法”可以高速+裸建图 水过此题(呃,或曰此题乃单纯形裸题是也。)
留坑前先给个链接吧,应该是目前网上最好的此题题解:
BYV大神的题解:www.byvoid.com/blog/noi-2008-employee/#more-916
...
分类:
其他好文 时间:
2015-01-07 20:57:54
阅读次数:
156
题解,比较常规式是费用流,没写那个神贪心。
首先是三元环需要取补集,先C(n,3)算出总环数,然后减去失败的三元环。
我们发现在一个三元环中,如果有某个选手入度(or 出度)为2,那么就会破坏这个环。
所以当选手有x个度时,就会破坏∑(i∈[0,x])个三元环(0+....+x-1),P.S.这个是C(x,2)推出来的。
建图:
第一层源点
到下一层每个点若干条边
...
分类:
其他好文 时间:
2015-01-07 16:59:32
阅读次数:
181
题目大意:给定一个平面上的一些点,吃豆先生从原点出发,只能向右或向上走,求两个吃豆先生最多吃到多少豆
每个点拆成两个,之间连一条流量为1,费用为1的边;
如果从一个点出发可以到达另一个点,就将前一个点的出点连向后一个点的入点
跑费用流。但是这样显然是会TLE的
如果i能到j,j能到k,那么显然无需连i->k这条边 这是一个剪枝
加了这个剪枝之后可能会WA 因此还要考虑一个点经过多次的情况...
分类:
其他好文 时间:
2015-01-06 10:09:51
阅读次数:
169