首页 > 其他分享 >ARC130F Replace by average

ARC130F Replace by average

时间:2024-03-26 09:16:23浏览次数:31  
标签:ARC130F average Replace 答案 凸壳 递增

首先我们能够发现,最终得到的答案 \(b\) 一定为下凸的。但是直接求凸壳肯定不行。具体地,答案的凸壳要满足对于每个 \(x\),\(b_x\) 都是整数,即每段斜率都是整数。

可以发现找到能包住点集,最贴合的一个这样的 \(b\) 数组就是答案,因为题目给定的操作让我们每次都只能扩展最贴紧的点。那么我们先对 \(a\) 求出凸包,然后从 \(b_i\) 推到 \(b_{i+1}\)。即,我们需要找到 \((i,b_{i})\) 到 \(a\) 的凸壳的切线。由于 \(i\) 是递增的,且得到的 \(b\) 也是推的,所以切点是递增的,直接双指针即可。总复杂度 \(O(n)\)。

https://atcoder.jp/contests/arc130/submissions/50443191

标签:ARC130F,average,Replace,答案,凸壳,递增
From: https://www.cnblogs.com/TetrisCandy/p/18095817

相关文章

  • LeetCode 2265. Count Nodes Equal to Average of Subtree
    原题链接在这里:https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/description/题目:Giventhe root ofabinarytree,return thenumberofnodeswherethevalueofthenodeisequaltothe average ofthevaluesinits subtree.Note:Th......
  • AtCoder Grand Contest 022 E Median Replace
    洛谷传送门AtCoder传送门考虑对于一个确定的串怎么判断合法性。容易发现删到某个时刻若\(1\)的个数大于\(0\)的个数了,因为我们肯定不会蠢到在不是全\(1\)的时候删\(111\),所以\(c_1-c_0\)在不是全\(1\)的时候至少是不会变小的。所以我们的目标就是让\(c_1-c_0......
  • replace去除多个不同的字符
    python字符串一次替换多个字符使用replace替换多处_pythonreplace只替换第二个-CSDN博客pandas处理文本特征之特殊字符剔除_pandas删除特定字符-CSDN博客大写w表示去除特殊字符小写w表示匹配特殊字符 ......
  • AT_abl_e Replace Digits 题解
    分析线段树模板题。维护一个区间\([l,r]\)中\(\sum\limits_{i=l}^r10^{n-i}\)的答案。将某个区间\([l,r]\)全部修改成\(x\)之后的表示的数就是\(x\times(\sum\limits_{i=l}^r10^{n-i})\)。区间修改可以用线段树,用快速幂或者预处理弄出来\(10^x\),建树的时候就能把每......
  • [AGC016D] XOR Replace 题解
    题意:一个序列\(a\),一次操作可以将某个位置变成整个序列的异或和。求最少几步到达目标序列\(b\)。\(n\le10^5\)思路:见到这种题,第一步要去尝试把操作转化。稍微推一下可以发现,如果\(\oplus_{i=1}^na_i=s\),则相当于一个\(n+1\)长序列,\(a_{n+1}=s\),每次可以交换\(a......
  • Vue Router系列之(八)router-link 标签的replace属性
    <router-link>的replace属性作用:控制路由跳转时操作浏览器历史记录的模式浏览器的历史记录有两种写入方式:分别为push和replace,push是追加历史记录,不破坏栈中的任何一条数据,不断的压入数据,replace是替换掉当前栈顶的那一条记录。路由跳转时候默认为push注:浏览器的历史记录实......
  • [ABC342C] Many Replacement 题解
    洛谷传送门原题传送门题意给出由小写字母初始字符串,每次操作将字符串中所有为\(c\)的字符改为\(d\)。输出最终的字符串。分析很明显只需要开一个\(fa\)数组,其中\(fa[i]=j\)表示字母\(i\)被改为了\(j\)。对于每次操作只需要遍历\(26\)个字母,将\(fa[i]=c\)的那些......
  • C - Many Replacement
    C-ManyReplacementhttps://atcoder.jp/contests/abc342/tasks/abc342_c 思路根据q组字符转换动作,找出每个字符最终将变成的字符。 初始化字母转换表:映射前->映射后a->ab->b......z->z 对于q组字符变换,依次执行:c->d 如果c在“映射后”字符集......
  • Replace on Segment
    看了一下数据范围就知道是区间DP像这种选择区间的操作,我们一般都会猜一个结论:对区间\([l,r]\)的某种操作序列,如果没有一次操作是覆盖了整个区间的,那么中间一定可以找到一个分段点(这样才可以进行区间DP的枚举分段点的经典转移)实际上,这道题目也是有类似的性质的然后放一下正式证......
  • CF1872G Replace With Product
    刚看到这道题的时候就第一感觉应该是乘积比加和更优。发现如果序列中所有数的乘积比\(2\times10^{14}\)更大,在区间左右端点不为\(1\)时,全乘起来一定更优。若左右端点为\(1\),则找到两端的第一个非\(1\)位置即为答案。否则,发现\(2^{49}>2\times10^{14}\),则区间内非\(1\)......