首页 > 其他分享 >题解【CF1316E Team Building】网络流做法

题解【CF1316E Team Building】网络流做法

时间:2022-09-06 14:23:49浏览次数:106  
标签:Building 那么 个人 题解 CF1316E 球员 观众 人当

题目传送门

一眼费用流。

然后发现题解区竟然全是状压 DP?????

推销一下本题状压 DP 的题解

那么我就来 yy 一下我的网络流做法吧,我会尽量把网络流的想法讲得自然一点。

考虑将所有人按照 \(a_i\) 从大到小排序,那么贪心的考虑,如果一个人不去当球员,那么能当观众就当观众。

这里就有了一个隐藏的条件了:不管你 \(p\) 个球员选的谁,观众一定是前 \(\left(p+k\right)\) 个人中,没去当球员的贡献最大的前 \(k\) 个,当然也至少需要 \(k\) 个人,所以我们得到观众选取的范围 \([k,p+k]\)。

我们钦定前 \(b\) 个人全部当观众,其中 \(b\in [k,p+k]\),那么肯定需要调整一些人当球员。

那么我们总体思路就出来了,首先钦定收益为前 \(b\) 个人都当观众的收益,然后加上 \([1,n]\) 中球员的收益,然后减去 \([1,b]\) 中,由观众变成球员的收益。

具体如何选取呢?

我们对于 \(i\in [1,b]\) 选出若干人当球员,在 \(i\in (b,n]\) 中选出若干人当球员,其余人当观众,若观众没有空位,那么就摆烂。

那么在 \([1,b]\) 中选出多少人当球员呢?

显然答案是固定的,只能是 \((b-k)\) 个,因为我们一开始固定,观众只能在 \([1,b]\) 中选。有 \(k\) 个人当观众,那么就有 \(b-k\) 个人当球员。

而我们一共要找 \(p\) 个人当球员,\([1,b]\) 中有 \(b-k\) 个球员,所以 \((b,n]\) 中一共有 \(p-(b-k)\) 个球员。

个数与花费两层限制,不就是费用流吗!

下文记 \((u,v,f,w)\) 表示一条从 \(u\) 到 \(v\),容量为 \(f\),流量为 \(w\) 的弧。

我们建立两个源点 \(A,B\),表示 \([1,b]\) 点的集合,和 \((b,n]\) 点的集合。初始对于 \(i\in [1,n]\),连一条 \((A,i,1,0)\) 的边,同理,对于 \(i\in (b,n]\),连一条 \((B,i,1,0)\)。

然后建立总源 \(S\),连 \((S,A,b-k,0)\) 和 \((S,B,p-b+k,0)\) 的边。

\(A,B\) 的意义到这里也就清晰明了了,它固定了两个集合中,当球员的人数。

之后就可以暴力连边啦。

连边的思路是,每一个 \([1,b]\) 的观众都有可能成为球员,那么暴力把所有可能连上,跑一遍网络流只会留下合法的解。

那么对于 \(i\in [1,b]\) 和 \(j\in [1,p]\),连一条 \((i,j+n,1,-a_i+s_{i,j})\) 的边,这里的意思,若 \(i\) 变成球员,那么需要减掉一开始算在观众里 \(a_i\) 的贡献,然后加上变成球员的贡献 \(s_{i,j}\)。

然后对于另一半 \(i\in (b,n]\),练一天 \((i,j+n,1,s_{i,j})\) 的边,因为这里的 \(i\) 一开始没有被钦定成观众,直接算它成为球员的贡献即可。

最后每一个球队的位置连向 \(T\) 即可。

但是这道题可能需要 \(\text{zkw}\) 费用流,我的 \(\text{EK}\) 被卡了,但是我偷懒吸一口臭氧就卡过了(

代码想要的人私信,不放了。

求赞/kel

标签:Building,那么,个人,题解,CF1316E,球员,观众,人当
From: https://www.cnblogs.com/UperFicial/p/16660959.html

相关文章

  • CSP集训题解
    CSP集训题解Summer已经完结了于是新开一个,而且旧的已经很卡了9.5CSP-S短赛1(开小灶1)T1ZZH的游戏实际上把策略想明白就很简单。以一次连续的移动为一个阶段,每个阶段都必......
  • CF1615F LEGOndary Grandmaster 题解
    CF1615FLEGOndaryGrandmaster对于两个长度为\(n\)的\(01\)串\(s,t\),你可以对\(s\)进行两种操作:把相邻两个\(0\)变成\(1\)或把相邻两个\(1\)变成\(0\),......
  • CF1717A题解
    题目\[\text{lcm}(a,b)=\frac{a\timesb}{\gcd(a,b)}\]\[\frac{\text{lcm}(a,b)}{\gcd(a,b)}=\frac{a}{\gcd(a,b)}\times\frac{b}{\gcd(a,b)}\]\[\frac{a}{\gcd(a,b)}\t......
  • 题解【P2466 [SDOI2008] Sue 的小球】
    题目传送门。一眼丁真,鉴定为原题。现将所有点按照\(x\)排序,区间\([l,r]\)的终点一定是\(l\)或\(r\),否则会跑冤枉路。设\(f_{i,j,0/1}\)表示在区间\([i,j]\)......
  • 1217F 不是题解
    图,动态,连通性,假装强制在线但并不是。 线段树分治是什么?沿着时间建线段树,把logn个操作插到线段树里面,然后就可以简单的增/删了这一题,把可能的两条边都插入线段树。到......
  • 【题解】做题记录(2022.9)
    可能会断断续续的,是因为可能有的时候忘记了写记录9.5今天搞了一天的平衡树,但大部分都是比较基础的操作[SHOI2009]会场预约题目分析:set大法吼啊我们考虑重新定义两个......
  • noi.ac#15 题解
    做了一下午还多,完全独立完成。题意很简单:给树加一条边使得最大匹配数增加1。什么样的边\((a,b)\)满足条件呢?很明显,当且仅当存在一个最大匹配不选\(a,b\)。此时加上\(......
  • 【题解】[SDOI2009] 虔诚的墓主人
    题意传送门\(N\timesM\)的矩形,格点是共\(W\)棵常青树或墓地。对于一块墓地,它的虔诚度为让它正上下左右各恰有\(k\)棵常青树的方法数量。求出整个矩形公墓的虔诚度总......
  • 题解【CF1025D Recovering BST】
    题目传送门肉眼观察题。设\(f_{i,j,k}\)表示区间\([i,j]\)的根为\(k\)时能否还原。这样枚举一个根\(k\),分别枚举两个儿子在两个区间的位置转移就好了,由于两个儿子......
  • ARC147题解(A~E)
    \(A\)\(Problem\)给定长度为\(n\)的序列\(A\),要求重复执行以下操作,直到\(A\)中的元素个数为\(1\):选出下标\(i\),使得\(A_i\)是\(A\)中剩余的数中最大的;选出......