首页 > 其他分享 >2024.10.19 CF2030(Div.2)

2024.10.19 CF2030(Div.2)

时间:2024-10-29 21:50:02浏览次数:8  
标签:2024.10 last 数字 19 sum next 端点 Div.2 消除

比赛链接

Solved:5/8

Upsolved:6/8

Rank:166

image.png


E. MEXmize the Score

题意

定义一个集合的分数为:将它分成若干个子集,mex 和的最大值。(mex 从 0 开始算)

给 n 个数,求所有非空子集的分数之和。

\(n\leq 2\times 10^5\)

题解

对一个确定的集合,它的划分方式一定是每次分出去一个最长的 {0,1,…,k},按这样划完剩下的数就没用了。

我们依次考虑 {0},{0,1},…,{0,1,…,n-1} 被划分了多少次。

对 {0,1,…,i},如果某个子集满足:i+1 及以上的数字随意,如果 0 到 k 出现了至少 j 次且至少一个数出现了 j 次,那么 {0,1,…,i} 在这个子集中被划分了 j 次。

这里的 {0,1,…,i} 是从 {0,1,…,i-1} “延申”出来的。因此对答案的贡献是 1 而不是 i+1(如果不用差分统计贡献,需要保证 i+1 不出现或者出现次数和 1…i 的次数恰好差 j,需要多枚举一层)。

具体式子就是

\[\sum_{i=0}^{n-1}2^{\sum_{j=i+1}^nc_j}\sum_{j=1}^{c_i}j\left(\prod_{k=0}^i\sum_{l=j}^{c_k}\binom{c_k}l-\prod_{k=0}^i\sum_{l=j+1}^{c_k}\binom{c_k}l\right) \]

k 和 l 的循环可以预处理,只需枚举 i 和 j。复杂度 O(n)。


F. Orangutan Approved Subarrays

题意

称一个序列是可消除的,如果它可以通过如下操作删除至空序列:

  • 每次删除一个连续的数字相等的区间
  • 每个数字只能删除一次

给一个序列,多次询问一个区间是否可消除。

\(n\leq 2\times 10^5\)

题解

首先观察到两个性质:

  • 序列可消除的充要条件是不存在交替出现的数字(1 2 1 2 这样的,中间隔其他数也不行)
  • 如果一个区间不是可消除的,那么包含它的区间也不是可消除的。因此可以固定右端点然后双指针算最长的左端点。

考虑左端点何时会向右移动。维护last和next数组分别表示每个数字上次和下次出现的位置,则当右端点为i时,只要[j,last[i]-1]中存在一个数的next在[last[i],i-1]之间,就说明有交替出现。动态更新next并用线段树维护即可。

处理完所有右端点对应的左端点,询问O(1)。

标签:2024.10,last,数字,19,sum,next,端点,Div.2,消除
From: https://www.cnblogs.com/EssentialSingularity/p/18514580

相关文章

  • 2024.10.14 Codeforces Round 978 (Div. 2)
    比赛链接Solved:4/7Upsolved:5/7Rank:447(rated343)D2.Asesino(HardVersion)题意:有n个人,除了一个卧底以外,其他人或者只会说真话,或者只会说谎,且他们知道彼此的身份。卧底只会说谎,但其他人都认为他只会说真话。现在你可以进行若干次询问,每次询问形如问第i个人第j个人是什么......
  • 2024.10.24 The 2021 ICPC Northwestern Russia Regional Contest
    比赛链接Solved:8/14Penalty:909Rank:23前五道签到题ABCHL。K.KaleidoscopicRoute题意给一张带边权的图,求一条1到n的路径,使经过的边数最少的同时边的极差最大。题解求出最短路图,然后DAG上dp:f和g分别表示从1到这个点能经过的最大边权和最小边权。然后每转移一条边(x,y,z......
  • 2024.10.4 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest
    比赛链接Solved:7/11Penalty:914Rank:1/74Rank(vp):63/1k+Dirt:22%G答案是4*纯色块数+5。考虑怎么维护这个纯色块数。这道题的修改保证了一个块纯色当且仅当其行列都纯色。因此对行列分别维护一棵线段树,维护每一层分别有多少个纯色节点,按层乘起来相加就行。K1操作的增加量......
  • 2024.10.3 2022-2023 ICPC Brazil Subregional Programming Contest
    比赛链接Solved:12/14Rank:5/1k+Rank(vp):49/2k+Penalty:1619Dirt:45%前10个题都比较简单/套路。L做法很好想。但是……因为不会写启发式合并卡了40min,警钟长鸣!intsum[N];map<int,int>col[N];intsz[N];llnow[N],ans[N];voidmrg(intx,inty){x=find(x),y=fi......
  • 2024.10.26 2024 CCPC哈尔滨站
    Solved:6/13Penalty:635Rank:72Rank(ucup):170打到后面困了(而且不会L心态爆炸)睡觉去了,不然还能多做个E题(被L单防了啊。。CGKM:签到,不放了。J.NewEnergyVehicle$n$种汽油,$m$个加油站,每个加油站只能加一种油,每种油都是一单位能走一公里,求最远能走多少公里。$n,m\leq......
  • 2024.10.29 test
    A已知\(n\)边形的一个三角剖分,你可以进行若干次“城市建造”操作,可以选择三个点并新建一个点为这三个点的内心并连边。构造方案,使得城市建造次数最少,且新图可以划分为两棵树。只需要进行一次城市建造操作,就可以使边数变为\(2n\),点数为\(n+1\),显然即可划分。考虑取出一个三......
  • ASP.NET程序设计1916寻亲爱心网//寻亲网站(源码)
    项目包含:源码、论文、讲解视频、说明文档请查看博主个人简介开发环境开发工具:VisualStudio2010或以上版本数据库:SQLServer2005或以上版本开发语言:c#操作系统:windows7或以上浏览器:GoogleChrome(推荐)、Edge、360浏览器近年来,随着城乡流动人口的迅速递增,一方面......
  • 2024.10.29
    1.reverse函数:翻转对于数组a,a+n;对于字符串或者向量a.begin(),a.end();具体在https://blog.csdn.net/YMWM_/article/details/1154682972.字符串的一种赋值方式点击查看代码for(inti=0;i<n;i++)s[i]=string(7*n/2,'')其中s[]=string(数量,'')是说将s[]这一行赋值为......
  • 题解:P7306 [COCI2018-2019#1] Strah
    分享一个\(O(nm\logm)\)的方法。分析考虑每次在\(x\)轴上固定左端点,然后移动\(x\)轴上的右端点,并统计答案。考虑如何统计一个\(1\timesn\)的区域的贡献。显然长度为\(i\)的区间有\(n-i+1\)个,所以贡献即为:\[\begin{aligned}f(n)=&\sum^n_{i=1}i\left(n-i+1\ri......
  • [GXYCTF 2019]Ping Ping Ping 题解(多种解题方式)
    知识点:命令执行linux空格绕过反引号绕过      变量绕过         base64编码绕过打开页面提示"听说php可以执行系统函数?我来康康"然后输入框内提示输入bjut.edu.cn  输入之后回显信息,是ping这个网址的信息 输入127.0.0.1因为提示是命令......