首页 > 其他分享 >Maximum Balanced Circle

Maximum Balanced Circle

时间:2023-11-07 18:57:57浏览次数:33  
标签:输出 值域 最大值 Maximum 最小值 Balanced Circle 最优 极长

here

首先根据题意,我们不难有数字是连续的这种感悟。

而且限制是值域上的,从下标入手发现难以突破,便从值域上入手。

从小到大考虑每个数字,然后dp,可以参考这篇题解。

至于方案的输出,有两种情况。

  • 只有自己\(i\)和\(i-1\),直接输出即可。
  • 有自己和\(i-1\)的环,定义print输出环,且最大值全部集中在左侧,那么在递归时只需将\(cnt[i-1]\)减1后调用print(i-1),然后在末尾补上\(i-1\)。这样就可以输出\(i\)夹在\(i-1\)中间的方案

这里补充一下\(i\)在以\(i\)为最大值的环中一定连续的证明。因为\(i\)是环上最大值,一段极长的连续的\(i\)段的左边一个和右边一个(设为\(a[x]\))一定是\(i-1\)。(不可能有\(i+1\))第一段极长\(i\)不动,后面所有的极长的\(i\)全部挪到第一段后面,\(a[x]\)前面。然后相邻元素的变化还是满足条件(\(|(i-1)-(i-1)|=0\le 1\)),如果最后一段\(i\)延伸到了序列末端,说明\(a[1]\)要么是\(i-1\),要么是\(i\),无论哪种都仍旧满足限制。所以任何一种合法的环,都可以构造成一种最大值连续的环,因此也一定有一种最大值连续的环,是最优解。求这个最优解即可。


这篇题解的方法更加巧妙,由于我们有了值域上连续的大致体会,想要知道值域具体是多少,找最小值、最大值,它们中间夹的就是值域,于是除了最大值、最小值,剩下的都必然是出现2次以上的元素。这是必要性的证明。

同样,对于一段最大值\(a\)、最小值\(b\)之间的数都出现了至少2次的段,都可以通过\(a, a+1, a+2, ..., b, (b), b-1, b-1, ..., a+1, a+1,(a)\)的方式来构造成一个合法的环。(首先将所有数输出一次,多出来的在后面输出,所以可能会有多一个\(a\)和\(b\))。

这是充分性的证明。

所以这种条件下的最优解,就是题意条件下的最优解,因为它们二者等价。

标签:输出,值域,最大值,Maximum,最小值,Balanced,Circle,最优,极长
From: https://www.cnblogs.com/zhangchenxin/p/17815652.html

相关文章

  • Maximum AND
    看到这么多位运算,拆位考虑。对于\(f(a,b)\)的一位,要么是0,要么是1。该位是1,说明有某种\(b\)的排列,使得该位上\(a_i\oplusb_i\)均为1。(因为\(\&\)的结果是1,说明全都是1)。那么我们要优先满足哪一位为1呢?一个直接的想法是优先满足高位为1,因为\(2^k>2^{k-1}+2^{k-1}+...+2^1+2^......
  • SpringCloud复习:(2)@LoadBalanced注解的工作原理
    @LoadBalanced注解标记了一个RestTemplate或WebClientbean使用LoadBalancerClient来进行负载均衡。LoadBalancerAutoConfiguration类给带注解的@RestTemplate添加了拦截器:LoadBalancerInterceptor.具体流程如下:首先定义一个LoadBalancerInterceptor然后定义了一个RestTemplateC......
  • #期望dp#CF1810G The Maximum Prefix
    洛谷题面CF1810G分析考虑最大前缀和满足两个条件,就是所有前缀和都不超过,以及一定有一个等于。那么就要保证它能达到最大值且一直不能高于它设\(dp[i][j][0/1]\)表示前\(i\)个数离达到最大值还需要\(j\)且未/已经达到过最大值。初始化就是\(dp[0][j][j==0]=h[j]\),然......
  • PAT 甲级【1007 Maximum Subsequence Sum】
    本题是考察动态规划与java的快速输入:max[i]表示第i个结尾的最大的连续子串和。bbegin[i]表示第[begin[i],i]为最大和的开始位置超时代码:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassMain{@Suppres......
  • Paper Reading: Sample and feature selecting based ensemble learning for imbalanc
    目录研究动机文章贡献本文方法基于聚类的分层随机欠采样特征选择样本和特征选择的集成学习基于随机森林的SFSHEL实验结果数据集和实验设置KEEL数据集的比较HeartFailure数据集的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限......
  • [AGC020F] Arcs on a Circle 题解
    ArcsonaCircle首先,一个非常自然的想法是尝试断环成链。怎么断呢?我们发现,选择最长线段的起点处截断是个非常好的选择,因为不可能有一个线段完全覆盖它。这之后,一个紧接着的想法就是DP。假如把描述中的全部“实点”改成“整点”的话,那么这题是比较trivial的,可以通过随便状压......
  • Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance(图论)
    CodeforcesRound903(Div.3)F.MinimumMaximumDistance思路对标记点更新fg,从0开始进行bfs,更新d1为所有点到0的距离获得到0最远的标记点L,从L开始bfs,更新d2为所有点到L的距离获得距离L最远的标记点R,从R开始bfs,更新d3为所有点到R的距离遍历所有点,这个点与标记点的最大距......
  • Some seqs are too long, please rebuild the program with make parameter MAX_SEQ=n
     001、cd-hit报错如下Someseqsaretoolong,pleaserebuildtheprogramwithmakeparameterMAX_SEQ=new-maximum-length(e.g.makeMAX_SEQ=10000000) 002、解决方法重新编译该软件:(base)[[email protected]]$makeMAX_SEQ=10000000......
  • CF1881F Minimum Maximum Distance
    给定一棵树,树上的一些点被打上了标记,定义一个节点的贡献为其到所有标记节点距离的最大值,求最小贡献。\(n\le2\times10^5\)。这道题的原题是CF337D(甚至要更困难一些)。很套路的换根DP啊。我们考虑设\(f_i\)为\(i\)子树内的标记节点到\(i\)的最大距离,\(g_i\)为子......
  • Maximums and Minimums (CF E)
      思路:分别求出最小区间和最大区间,利用单调zai处理即可然后在利用调和级数,求最小值的倍数 后记:为什么我不2个元素都求一个区间呢?......