首页 > 其他分享 >CF713C Sonya and Problem Wihtout a Legend

CF713C Sonya and Problem Wihtout a Legend

时间:2022-11-02 12:45:58浏览次数:46  
标签:geq 最大值 Sonya 序列 Problem Legend

题意
给定一个有 \(n\) 个正整数的数组,一次操作中,可以把任意一个元素加一或减一。(元素可被减至负数或 \(0\)),求使得原序列严格递增的求最小操作次数。

题解
首先有一个常规的想法,将 \(a_i\) 减去 \(i\),这样可使问题转化为将序列变为 非严格递增序列
然后有一个非常诡异的做法。
用优先队列维护修改过的序列的最大值,每次新加入一个数 \(x\),的时候,我们先将其加入优先队列,然后取出堆顶 \(y\)(取出最靠后的最大值),如果 \(x\geq y\) 无所谓,如果 \(x<y\),则将 \(y\) 修改为 \(x\)。
至于证明(感性理解一下)
我们考虑任意一种调整方法,发现对于逆序对 \(x,y\) \((x<y,a_x>a_y)\),不难发现 \(y\) 不可能减小(否则不优),而这里的做法钦定了 \(y\) 不减小,所以更优。

然后考虑一个问题:若 \(y\) 变为 \(x\) , \(y\) 前面的最大值 \(z\) 大于 \(y\) 了,这样是否合法。

这时候只需要关注 \(z\) 的最终值 \(z'\) 即可。
不难发现,如果 \(z'\geq x\) 就将 \(x\) 抬到 \(y\), \(y\) 减到 \(z\) 则效果相同花费不变。
\(z'\leq x\) 则调整方式没任何问题。

标签:geq,最大值,Sonya,序列,Problem,Legend
From: https://www.cnblogs.com/SouthernWay/p/16850639.html

相关文章

  • [leetcode] The Skyline Problem
      classSolution{publicList<int[]>getSkyline(int[][]buildings){List<int[]>res=newArrayList<>();List<int[]>height=newAr......
  • [COMP2119] Searching - Building and Egg Problem
    DescriptionThereisabuildingwith$n$floorsandyouhave$m$eggs.Determinethelowestfloorthrownfromwhichaneggwillbreak.Ifaneggisbroken,it......
  • 【CF802O】April Fools‘ Problem (hard)(wqs二分,模拟费用流,老鼠进洞)
    如果没有恰好为\(k\)的限制的话是个老鼠进洞的经典模型。加上恰好为\(k\)的限制后考虑使用wqs二分,因为费用流每次增广出来的费用是单调不降的。即如果设\(g(k)\)......
  • G. Periodic RMQ Problem
    G.PeriodicRMQProblem题目大意给你一个序列\(a\)让你支持\(1\)\(l\)\(r\)\(x\)区间赋值\(2\)\(l\)\(r\)询问区间最小值我们觉得这个问题太水了,所以我们......
  • [COMP2121] Bertrand's Ballot Problem
    DescriptionSupposethereare$x$votesfor$A$and$y$notesfor$B$,and$x>y$.Howmanysequencesarethereofrevealingthevotessuchthatthenumbervote......
  • Problem In Developing
    写了一段代码后发现无法通过测试思路1:首先review这段代码,思考可能会出现什么问题需要及时提交commit思路2:回退代码后重写思路3:找到错误信息,调试bug......
  • D. Problem with Random Tests
    传送门题意:给出一个字符串,然后,从这个字符串中取两个子串s1,s2,要求两个字符串的或最大思路:首先,先去s1从第一个非0开始取整段,记录第一个非0的位置为p1,因为或位数......
  • [React] useEffect - problem: dependency is Object
    Let'ssaywehaveasimpleapplooklikethis:import{useEffect,useState}from"react";functionuseFetch(config){console.log("useFetchcall");cons......
  • Python——legend()图例位置调整
    Legend()参数调整图例位置在日常使用中,有时默认的图例位置不符合我们的需要,那么我们可以添加参数对图例的位置进行调整。matplotlib.pyplot.legend(loc='String'orNum......
  • 关于 problem.conf
    基本设置problem.conf中一行只能含有一个设置(不然可能会出现奇怪的错误?)use_builtin_judger大多数题的problem.conf里都要有use_builtin_judgeron这句话,这表示您需......