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

Codeforces Round 904 (Div. 2)

时间:2023-10-26 15:24:52浏览次数:27  
标签:904 包含 max 线段 删掉 Codeforces 删去 Div 最大值

A.

没想到是暴力,做的很晚

B.

手玩一下即可

C. Medium Design

给定一个长为 \(n\) 的数组 \(a\) ,和若干条线段 \([l_i,r_i]\) ,你可以选择这其中的任何若干条线段,并让 \(a_l\sim a_r\) 均 \(+1\).请你计算可以得到的 \(\max(a)-\min(a)\) .

这题本来想的是先把所有的加进去,得到最大值后删去不包含最大值的线段,但是可能有多个最大值,这就很难搞了.

\(Solution\)

我们找 \(1\sim m\) 中任意一点 \(x\) ,假如这个点是要求的最大值的点,那么删去其他不包含该点的点不影响结果,所以我们可以只考虑包含了这个点的线段,一定有 \(a_i\geq a_1 ,i\in [1,x]\) , 并有 \(a_i\geq a_m ,i\in [x+1,m]\) ,那么答案一定是 \(\max(a_x-a_1,a_x-a_m)\) ,但是注意,这时候的 \(a_1,a_m\) 显然是删去了我们前面说的那些不必要的边后的 \(a_1,a_m\) ,如果对每一个 \(x\) 我们都判断一遍线段,刨除不包含 \(a_x\) 的线段,那会使得时间复杂度达到 \(O(n^2)\) ,这是显然不可行的.

可以提前把所有的 \(a_1,a_m\) 上的边删掉,删掉了包含 \(a_1\) 且不包含 \(a_x\) 的边,同时包含 \(a_1\) 和 \(a_x\) 的边被删掉并不会影响答案.此时答案就是 \(\max(a_i)\)

标签:904,包含,max,线段,删掉,Codeforces,删去,Div,最大值
From: https://www.cnblogs.com/oijueshi/p/17786534.html

相关文章

  • 「题解」Codeforces Round 905 (Div. 3)
    before终于有一篇题解是一次性更所有题的了。A.MorningProblemA.MorningSol&Code根据题意模拟即可。#include<bits/stdc++.h>typedeflonglongll;intmin(inta,intb){returna<b?a:b;}intmax(inta,intb){returna>b?a:b;}intT;int......
  • Codeforces 1786 / Codeforces Round #850 (Div.2)
    CodeforcesRound#850(Div.2)https://codeforces.com/contest/1786ProblemA1Non-alternatingDeck(easyversion)ProblemA2AlternatingDeck(hardversion)注意到最多进行\(O(\sqrtn)\)步,直接模拟即可。ProblemBCakeAssemblyLine题目保证了一定是\(n\)个蛋......
  • Codeforces Round 905 div2 F题
    记答案为\(ans_i\),表示从1到i次修改出现的字典序最小的数组a,\(c\)数组表示\(ans_i\)出现之后,所有修改的累加和。用一个vector存一下\(ans_i\)之后的所有修改。从1到q遍历每一次修改时,对\(c\)数组进行区间赋值操作,如果\(c\)数组中第一个不为0的数<0,那么\(ans_i\)加上\(c\)中的......
  • 「解题报告」Codeforces Round 653 (Div. 3)
    A.RequiredRemainderYouaregiventhreeintegers\(x,y\)and\(n\).Yourtaskistofindthemaximuminteger\(k\)suchthat\(0\lek\len\)that\(k\bmodx=y\),where\(\bmod\)ismodulooperation.Manyprogramminglanguagesusep......
  • Codeforces Round 905 (Div. 2)
    Preface周日晚上Div1,2,3同乐,但我不想打Div1,同时第三个号由于只打了两场没够到Div2的门槛,因此刚好打不了Div2,遂玩了一晚上LOL今天补了下这场题感觉难度偏低,E之前的题都比较签,F刚开始没想到转化成差分最小准备去写扫描线+线段树了,后面发现其实可以写的很简单A.Chemistry签,设......
  • CodeForces 946F Fibonacci String Subsequences
    洛谷传送门CF传送门duel的时候差点不会2400了。套路地,考虑每个\(F(x)\)中与\(s\)相同的子序列的贡献。设这个子序列为\(F(x)_{p_1},F(x)_{p_2},F(x)_{p_3},\ldots,F(x)_{p_n}\)。我们想要它成为一个子序列的子串,那么\(F(x)_{[p_1,p_n]}\)中除了\(p_1\simp_......
  • Codeforces 1862G 题解
    传送门题解因为有这个操作:将序列\(a\)加上\(\{n,n-1,\cdots,1\}\),考虑差分。那么显然每次操作会将差分数组中的每个元素减去\(1\),如果差分数组中有\(0\),就会把\(0\)删除。所以可以发现差分数组中剩下的一定是操作前的最大值。由于操作后最大值还是最大值,最小值仍......
  • Codeforces Round 886 (Div. 4) 题解
    link我为什么还要vpdiv4场。。。A直接找最大的两个判断一下。voidsolve(){ inta[3]; cin>>a[0]>>a[1]>>a[2]; sort(a,a+3); if(a[2]+a[1]>=10)cout<<"YES\n"; elsecout<<"NO\n";}B按照题目意思模拟。voidsolv......
  • Codeforces Round#905 解题报告
    由于是解题报告不是过题报告,所以理所当然的放弃了后三题代码的写。感觉这场Div1D是cyh的菜,E是gjk的菜。我负责菜。只写Div1题的题解。A双指针可以做\(m=1\)你发现随便换\(a_1\)答案最多减少\(1\),而且\(a_1\)越趋向于减少,所以可以二分分割点B最短路,怎么dij......
  • Codeforces Round 905 (Div. 2) D1. Dances (Easy version)(贪心+二分)
    CodeforcesRound905(Div.2)D1.Dances(Easyversion)思路:对于\(a\),它的头默认为\(1\),则\(a_0\)=\(1\)对于排完序的\(a\)与\(b\)数组最优为从\(a\)的结尾删除,从\(b\)的开头删除二分保留位数,删去\(n-mid\)位,即\(a\)从\(0\)开始,\(b\)从\(k\)(\(k=n-......