首页 > 其他分享 >CF 1913

CF 1913

时间:2024-08-15 15:19:30浏览次数:5  
标签:费用 code 删掉 CF 被删 即可 1913 考虑

A

先把第一个加到 \(a\) 中,然后扫到第一个不为 \(0\) 的开始给 \(b\)。

正确性显然。

code

B

可以交换,也就是可以任意重排。

那么记录一下 \(0, 1\) 的个数,从第一位开始模拟,知道 \(0\) 或 \(1\) 不够即可。

code

C

从低位往高位一位位做,假设当前做到第 \(i\) 位,有 \(c\) 个 \(2 ^ i\),那么做完后,可以两两配对得到 \((c - 1) / 2\) 个 \(2^{i + 1}\),如果某一位是 \(1\),并且 \(c\) 为 \(0\) 就无解。

code

D

设 \(f_{n, 0 / 1}\) 为考虑前 \(i\) 个数字,留 / 不留 \(p_i\) 的方案数。

首先考虑不留 \(p_i\) 的部分。

想要删掉 \(p_i\),至少要找到一个小于 \(p_i\) 的数才能做到,我们记 \(l_i\) 为 \(i\) 左边第一个小于 \(p_i\) 的数。

那么 \(f_{i, 0} = f_{l_i, 0} + f_{l_i, 1}\)。

因为想要删掉 \(i\) 至少需要包含区间 \([l_i, i]\),当然有可能是更前面的数,但那种情况也没有留 \([l_i + 1, i]\) 中的数,所以也计算在了 \(f_{l_i}\) 中,把 \([l_i + 1, i]\) 中的数删掉后,剩下的 \([1, l_i]\) 随便操作,我们并不关系 \(l_i\) 是否被删,所以 留和不留都加上。

考虑留 \(p_i\) 的部分。

第一个想法肯定是 \(f_{i, 1} = f_{i - 1, 0} + f_{i - 1, 1}\),因为会觉得既然留 \(i\) 那就前面所有的情况加上 \(i\)。

但其实这样会忽略掉一些情况,如可能有些数等到 \(i\) 加入序列后才能被删,如果直接拿 \(i - 1\) 算的话会算少。

同样依赖 \(l_i\),考虑 \([j, i], j \in [l_i + 1, i]\) 之间的操作,会删掉中间一段数,然后提供了 \(f_{j - 1, 1}\) 的贡献。

为什么不用加上 \(f_{j - 1, 0}\) ?

因为这种情况会被前面的考虑,当然 \(f_{l_i, 0}\) 不会被考虑,所以加上 \(f_{l_i, 0}\) 即可。

得到 \(f_i = \sum_{j = l_i}^{i - 1} f_{j, 1} + f_{l_i, 0}\)。

发现是区间和的形式,前缀和优化即可。

code

E

首先考虑如何构造出一组满足题目要求的解。

看到限制比较多的题目,想到网络流,我们给每一行每一列都建一个点,记为 \(R_i, C_i\)。我们给每个行的点连一条 \(S -> C_i\) 流量为 \(a_i\) 的边,\(R_i -> T\) 连一条流量为 \(b_i\) 的边,对于在一个点 \((i, j)\) 放 \(1\),我们让 \(C_i\) 向 \(R_j\) 连一条流量为 1 的边,对改图跑最大流即可。

对于原问题,考虑费用流,对于每个 \(0\) 的点,降他的费用设为 \(1\)。

首先强制所有 \(1\) 都变成 \(0\),那么如果他最后变成了 1,那么我们就要剪掉这个费用,那么我们把这类点的费用设为 -1,即可。

直接跑最小费用最大流。

code

F

string,待补。

标签:费用,code,删掉,CF,被删,即可,1913,考虑
From: https://www.cnblogs.com/Svemit/p/18360971

相关文章

  • 【题解】CF - 823C : Coin Troubles
    原题传送门题目大意有\(N\)种硬币,两种硬币的面值可能相同。给定\(q\)个限制,第\(i\)个限制由\(b_i\)和\(c_i\)组成,表示第\(b_i\)种硬币的数量严格大于第\(c_i\)种硬币的数量,且每个\(b_i\)与\(c_i\)都是唯一的。问在满足所有限制的情况下,有多少种可能的方案,能组......
  • CF1530D Secret Santa 题解
    ProblemSolution每个人初始不会给自己送礼物。如果每人要送礼的人都不一样,答案即为\(n\)。如果有两个或以上的人要送给同一个人礼物,假设有\(x\)个人要给同一个人送礼物,那么必有\(x-1\)个人要更改送礼的人,并将礼物送个\(x-1\)个没有礼物收的人。然而这样送礼物可能会导......
  • 【题解】CF - 859C : Pie Rules
    原题传送门题目大意:给定一个长为\(N(1\leqN\leq50)\)的序列,Bob和Alice轮流从序列的最前端进行以下操作之一:取出序列最前端的数,并将其加到自己的分数中;取出序列最前端的数,将其加到对方的分数中,则下一轮可继续操作。两人轮流操作直到序列被取完,分数多的一方获胜。若......
  • CF1383E Strange Operation
    小清新Counting题,想到转化成序列计数后就不难了考虑将一个0/1串等价转化为一个刻画相邻两个\(1\)之间有几个\(0\)的序列比如样例中的\(00101100011100\)就可以转化为\(\{2,1,0,3,0,0,2\}\)这个序列,显然转化后的序列和原来的0/1串等价考虑此时一次操作相当于将序......
  • CF1528C Trees of Tranquillity
    小清新找性质题,想到关键就很简单考虑在第一棵树上枚举一条从\(1\)到某个点的链,显然这些点之间满足第一个限制,现在只要在这些点中选出尽可能多的点满足第二个限制即可在第二棵树上两个点没有祖先关系,等价于它们对应的DFS序区间相离而两个点的DFS序区间显然要么相离要么包......
  • CF1523E Crypto Lights
    小清新Counting,被徐神绝杀力直观地想我们需要求出恰好\(m\)轮结束的概率\(p(m)\),但这个显然不好直接求,我们退而求其次用经典trick,我们设\(f(m)\)表示至少点亮了\(m\)盏灯的概率,最后求和得到的就是带权的概率和也就是期望考虑\(f(m)\)如何计算,转为计算合法局面的方案......
  • CF830E Perpetual Motion Machine
    一堆CornnerCase的大分讨,我们全队一边写一边补情况,WA了五发终于干过去了首先当图中存在某个环时,我们只要给环上的所有点赋值为\(1\)即可;又因为图连通所以只要考虑树的情况即可考虑如果存在一个度数\(\ge4\)的点,将其赋值为\(2\)并将其周围的四个点赋值为\(1\)即可......
  • SCI/CCF科研项目 - 个性化联邦学习及其交叉应用研究
    【课题推荐发表期刊】【课题背景】随着移动和物联网设备的普及和发展,用户设备上积累的大量数据因隐私保护无法直接上传至中心服务器。联邦学习作为解决方案,通过在边缘设备上训练模型,将模型参数更新发送到中心服务器进行整合,从而利用这些分散的数据。但传统联邦学习依旧存在......
  • 题解:CF1551D1 Domino (easy version)
    题解:CF1551D1Domino(easyversion)分析题目中保证\(n\timesm\)为偶数,下面进行分类讨论。情况一如果\(n\)和\(m\)都是偶数,那么可以分割成\(\frac{n}{2}\times\frac{m}{2}\)个\(2\times2\)的方块。根据上图我们发现,只要\(k\)满足\(0\lek\le\frac{n}{2}\time......
  • 题解:CF685A Robbers' watch
    题解:CF685ARobbers'watch感觉这题难点主要在理解题意。题意一天\(n\)个小时,一小时\(m\)分钟,手表用\(7\)进制表示时间(位数未填满补前导零),求问这个手表显示的每一位数字都不一样的时刻数量。分析因为是\(7\)进制,所以每一个数字位只可能出现\(0\sim6\)这\(7\)种......