bzoj4865: [Ynoi2017]由乃运椰子】的更多相关文章

在线询问区间众数,传统的分块(记录块间众数和每个权值的出现次数)做法被卡空间(分块用的空间是O(块数*(块数+权值种类数))),因此考虑去掉出现次数较小的数,只用分块维护出现次数较大的数.设K为分界线,用原来的分块维护原序列中出现次数>K的数组成的部分,而出现次数<=K的数,可以通过记录一个数前面第1~K个相同的数的位置,用线段树维护,线段树查询时利用单调性单次询问可以做到$O(k+logn)$,不会成为瓶颈. 当K取$O(n^{1/4})$时,时间复杂度仍是$O(q\sqrt{n})$,空间…
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 144  Solved: 78[Submit][Status][Discuss] Description ................. Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Output 一个浮点数,保留二位小数.表示答…
3597: [Scoi2014]方伯伯运椰子 题意: from mhy12345 给你一个满流网络,对于每一条边,压缩容量1 需要费用ai,扩展容量1 需要bi, 当前容量上限ci,每单位通过该边花费di,限制网络流量不能改变.调整后必须满 流,设调整了K 次,使得费用减少量为D,最大化D/K 就是给你一个费用流,但不是最小,增广的费用为b+d,退流的费用为a-d 就是正反向增广路 根据消圈定理,流f为mcmf当且仅当无负费用增广圈 01分数规划+spfa求负环即可 #include <iost…
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 594  Solved: 360[Submit][Status][Discuss] Description Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Output 一个浮点数,保留二位小数.表示答案,数据保证答案大于0 Sampl…
「SCOI2014」方伯伯运椰子 可以看出是分数规划 然后我们可以看出其实只需要改变1的流量就可以了,因为每次改变要保证流量守恒,必须流成一个环,在正负性确定的情况下,变几次是无所谓的. 然后按照套路,设 \[ ans=\frac{X-Y}{k}\\ ans\times k =X-Y\\ ans\times k=-\sum w_i\\ \sum ans-w_i=0 \] 从第二部到第三步是把X和Y中的共同边都减掉了 \(w\)是根据扩容或者缩容建的边权为\(b+d,a-d\)的边权集合 注意一点…
[BZOJ3597]方伯伯运椰子(分数规划,网络流) 题解 给定了一个满流的费用流模型 如果要修改一条边,那么就必须满足流量平衡 也就是会修改一条某两点之间的路径上的所有边 同时还有另外一条路径会进行相反的修改 现在要求最大化\(\frac{X-Y}{K}\) 二分答案\(mid\) 式子变为\(X-Y-K·mid\geq 0\) 换而言之,相当于给每次修改操作额外付出一个代价\(mid\) 要使得费用+修改代价最小 对于扩容我们很好处理 对于每条边再额外连一条边 容量为\(inf\)(可以无限…
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec  Memory Limit: 64 MB Submit: 404  Solved: 249 [Submit][Status][Discuss] Description Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Output 一个浮点数,保留二位小数.表示答案,数据保证答案大于0 Sam…
Description Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Output 一个浮点数,保留二位小数.表示答案,数据保证答案大于0 Sample Input 5 10 1 5 13 13 0 412 2 5 30 18 396 148 1 5 33 31 0 39 4 5 22 4 0 786 4 5 13 32 0 561 4 5 3 48 0 460 2 5…
题目传送门 传送门 题目大意 给定一个费用流,每条边有一个初始流量$c_i$和单位流量费用$d_i$,增加一条边的1单位的流量需要花费$b_i$的代价而减少一条边的1单位的流量需要花费$a_i$的代价.要求最小化总费用减少量和调整次数的比值(至少调整一次). 根据基本套路,二分答案,移项,可以得到每条边的贡献. 设第$i$条边的流量变化量为$m_i$,每次变化花费的平均费用为$w_i$.那么有 $\sum c_id_i - \sum (c_i + m_i)d_i + |m_i|(w_i + mi…
传送门 题意咕咕咕有点麻烦不想写 思路: 考虑加了多少一定要压缩多少,这样可以改造边. 于是可以通过分数规划+spfaspfaspfa解决. 代码: #include<bits/stdc++.h> #define ri register int #define fi first #define se second using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],…