首页 > 其他分享 >Codeforces Round 958 (Div. 2)

Codeforces Round 958 (Div. 2)

时间:2024-07-26 11:29:49浏览次数:8  
标签:958 位置 Codeforces 最小值 即可 删去 Div

A.

*900

水。

B.

*900

发现可以用操作把一串 0 缩成一个0,1 同理。都缩完之后会变成一个 01 交替的串。比较 0 和 1 的个数即可。

C.

*1300,贪心

猜结论。记 \(n\) 的二进制下有 \(x\) 个1, \(k\) 即为 \(x + 1\),可以证明这是最长的。从小到大把每一位1去掉后输出剩下的数即可。

D.

*2000,树形dp

删除操作最多 \(\log n\) 次,是因为一个点在一轮操作中不被删除当且仅当这个点相邻的点被删。

\(f_{i,j}\) 表示以 \(i\) 为根的子树中,点 \(i\) 第 \(j\) 次被删除失去的最小生命值。转移即可。

这个题也好难,我觉得比 e 难。

E.

*2300,数据结构

参考了 Alex_wei 的题解,进行一个自己的理解。

对于静态版的问题,可以通过单调栈解决。加上修改,就先按照静态版,用单调栈把每个点为最小值的 \(L_i\) 和 \(R_i\) 求出来。

再考虑本题。枚举最小值位置 \(i\),删去不同的位置对最小值为 \(a_i\) 的区间个数 \(p_i\) 的影响。

  • 若删去 \(i\),\(p_i\) 为 0。
  • 若删去 \([l_i + 1, i - 1]\) 的某个位置, \(p_i = (i - l_i - 1)(r_i - i)\)。
  • 若删去 \([i + 1, r_i - 1]\) 的某个位置,\(p_i = (i - l_i)(r_i - i - 1)\)。
  • 若删去 \([1,l_i - 1]\) 或 \([r_i + 1,n]\) 的某个位置, \(p_i = (i - l)(r - i)\)。
  • 若删去 \(r_i\) 这个点,记 \(rr_i\) 是 \(r_i\) 右边第一个小于 \(a_i\) 的位置, \(p_i =(rr_i - i - 1)(i - l_i)\)。
  • 若删去 \(l_i\) 这个点,记 \(ll_i\) 是 \(l_i\) 右边第一个小于 \(a_i\) 的位置, \(p_i=(r_i-1)(i-ll_i-1)\)。

前四种可以简单通过数据结构维护,如差分,线段树等。后两种 st 表上二分即可。

做这个题的时候除了 st表上二分其他都想到了(

标签:958,位置,Codeforces,最小值,即可,删去,Div
From: https://www.cnblogs.com/wyyqwq/p/18324973

相关文章

  • cf960(div2)
    A.SubmissionBait(博弈)题意:爱丽丝和鲍勃在大小为n的数组a中进行游戏,他们轮流进行运算,爱丽丝先开始,不能运算的一方输,一开始mx=0,每次操作,玩家可以选择一个牵引i,ai>=mx,mx设置为ai,ai设为0.判断爱丽丝是否有一个获胜策略。分析:只要一个数出现奇数个,那么爱丽丝就可以先手拿走那出......
  • CodeForces - 1842H
    *3000,大牛题。分析题目的转化首先题目中\(x_i+x_j\le1\)和\(x_i+x_j\ge1\)不好处理,我们不妨将\(x_i\)都减去\(0.5\),结果不变,那么原题则转化成了\(x_i+x_j\leor\ge0\),发现现在只在乎\(x_i\)之间的绝对值大小关系与正负,这样就可以求出总方案数和合法的方案数,所以......
  • v-for内所有div中的内容(多行多列)全部自适应自动左右滚动(适用于表格)vue2
    html部分<divclass="table_content"><divv-for="(item,outerIndex)intable2Data":key="outerIndex"style="display:flex"><divstyle="width:......
  • 题解:Codeforces Round 961 (Div. 2) B1&B2
    本题含有B1和B2两个难度版本。由于关系相近,我把他们放在同一篇博客中,可自行选择观看B1.Bouquet(EasyVersion)timelimitpertest:1.5secondsmemorylimitpertest:512megabytesinput:standardinputoutput:standardoutputThisistheeasyversionoftheprobl......
  • Codeforces 929 div3 D
    题目:D.TurtleTenacity:ContinualMods题目链接:https://codeforces.com/contest/1933/problem/D算法:数论、贪心。一开始没思路,后面看了别人的题解才搞懂的。思路:1.将原数组a从大到小排序后可以得到的数组b有两种情况。一种是b0!=b1,另一种则是b0=b1(下标从0开始)。对于第一......
  • 题解:Codeforces Round 961 (Div. 2) A
    A.Diagonals*timelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputVitaly503isgivenacheckeredboardwithasideof\(n\)and\(k\)chips.Herealizedthatallthese\(k\)chipsneedto......
  • Codeforces Round 961 (Div. 2)
    ABC没什么,除了B2还没补。主要就是这个D题。这题我基本上需要想到的都想到了,没想到的部分就是记录不合法答案而非直接记录正确答案。其实这思路也有点能够被启发的地方,就是只有某个位置前k个位置是又至少一个数字存在与我们的选择集合里的,我们才能够统计答案。也就是说,如果统计......
  • [题解]CF958C3 Encryption (hard)
    思路先考虑\(\Theta(n^2k)\)的暴力DP。定义\(dp_{i,j}\)表示在前\(i\)个数中选取\(j\)个的最小和,转移显然:\[dp_{i,j}=\min_{1\leqk<i}\{dp_{k,j-1}+s_{k+1,i}\bmodp\}\]注意到一个性质:\(dp_{i,j}\equivs_i\pmodp\)。因为前者是前\(i\)项分为若干......
  • Codeforces Round 961 (Div. 2)
    A.Diagonals----------------------------题解----------------------------------注意读题,题目中只有i+j相同的格子才是一个对角线,也就是说,(1,1)(2,2)(3,3)的那条大斜线不是个对角线,如图所示这是一个3*3的图中所有的对角线,那么我们只需要如图所示,从中间往两边依次放就可以,......
  • codeforces div_2 961 题解报告
    codeforcesdiv_2961题解报告比赛链接:https://codeforces.com/contest/1995A.Diagonals题目翻译给定一个边长为\(n\)的正方形,给定\(k\),要往正方形选\(k\)个点,\(x+y\)相同的点构成对角线,问至少要几条对角线才能装下\(k\)个点。时限1s,空间限制256MB\(1\len\le100,0\l......