首页 > 其他分享 >Heirloom Painting

Heirloom Painting

时间:2024-04-14 09:22:23浏览次数:32  
标签:Heirloom len 连续 长度 Painting 我们

先考虑无解的情况,来看样例三,很容易发现是因为\(k\)太大了,所以每次都会修改之前已经改好的。于是我们猜想,如果任意一段连续的数的长度都小于\(k\),那么就无解,证明比较容易,反证就好了,如果存在一个解,那么这个解的最后一步操作,一定是连续的\(k\)个格子,而且这\(k\)个格子的颜色一定要一样,与我们前面的条件矛盾,所以无解;于是我们猜想如果存在一个连续段长度大于等于\(k\),那么一定有解,我们假设只有一个连续段,然后考虑从这个连续段入手,除了这个连续段,剩下的连续段的长度都小于\(k\),我们依次涂每个连续段,最后再涂这个最长的连续段,显然是一个解;拓展到多个连续段的情况,对于两个长度大于等于\(k\)的连续段之间的连续段(长度都小于\(k\)),我们按照上面的方法涂,然后最后涂大的连续段,就是一个解,而且可以发现这个解是最优解,来证明一下

对一个长度为\(len\)的连续段,将其覆盖最少需要\(\lceil \frac{len}{k}\rceil\)次,那么下界就是所有这种连续段的和,显然我们上面的方法可以达到这个下界

代码可以看看,为了避免麻烦,我们断环成链的时候选取两个相邻且不同的数之间断开就好了

标签:Heirloom,len,连续,长度,Painting,我们
From: https://www.cnblogs.com/dingxingdi/p/18133759

相关文章

  • Atcoder ABC242H Random Painting
    对于这个\(\max\)似乎没有什么好的办法,考虑\(\min-\max\)反演。记\(t_i\)为第\(i\)格被染黑的时间,有\(E(\max(t_i))=\sum\limits_{S}(-1)^{|S|+1}E(\min(t_i))(i\inS)\)。考虑如果知道了\(S\),那么就可以知道\(c=\sum\limits_{i=1}^m[[l_j,r_j]\capS\no......
  • [USACO13MAR]Farm Painting S 题解
    看大家好多写的都用了四维偏序,给一个不用偏序的解法。简化一下题目,就是给你\(n\)个矩形,第\(i\)个矩形用\((x1_i,y1_i,x2_i,y2_i)\)表示,问你有多少个\(i\)满足:不存在另一个\(j\)使得\(x1_j\lex1_i\lex2_j\wedgey1_j\ley1_i\ley2_j\)。我们从左到右扫描每一个......
  • P4084 [USACO17DEC] Barn Painting G
    原题链接题解1.对于没有固定颜色的节点来说,每个节点只会有三种颜色,而这又是一棵树,树形dp由此而来2.由相邻节点不同确定转移方程3.即使有求模也可能要开longlongcode#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstllmod=1e9+7;vector<ll>......
  • RandomPaintingOnABoard TopCoder - 12607
    AnoteabouttheconstraintsConstraintsindicateusthatthemaximumwidthandheightwillbe21.Thereisanotherconstraintthough:Themaximumtotalnumberofcellsis150.Thiscanhelpusbecauseitmeansthatthesmallerdimensionwillbeatmost1......
  • [CF576E] Painting Edges
    PaintingEdges动态加边和二分图容易想线段树分治,分别维护k种颜色的并查集。不过每条边的存在时间不能确定。设边i的两次操作的时间为\(x_i,y_i\),那么对于\(t\in[x_i+1,y_i-1]\)有两种情况,颜色改变或改色不变。则我们把每次操作影响的时间放在树上,从左到右递归到叶......
  • CF1479B1 Painting the Array I
    如果两种方案末尾两数有一数相同,那么答案较大的方案不劣于答案较小的方案。答案较大的方案只需\textbf{模仿}答案较小的方案即可,在状态变成相同之前答案最多只会少\(1\)。所以只需要考虑末尾两数\(a,b\)与新进来的数\(c\)各不相同时该替换哪个。假设\(a\)下次出现的位置......
  • Educational Codeforces Round 152 (Div. 2) D. Array Painting(双指针)
    EducationalCodeforcesRound152(Div.2)D.ArrayPainting//思路:双指针找连续正数段//若段中出现2,则更新两头的0的情况,若为涂色则改为true//若无2,则优先更新左侧0,若左0已经为true,则更新右侧0//数组开头结尾特判#defineintlonglong#defineldlongdoubleusingnam......
  • Lnton羚通算法算力云平台在OpenCV-Python中如何图像修复 Image Inpainting
    OpenCVPython图像修复【理论】大多数人家里都会有一些旧照片,上面有一些黑点,一些笔画等。你想过把它修复回来吗?我们不能简单地在油漆工具中删除它们,因为它只会用白色结构取代黑色结构,这是没有用的。在这些情况下,使用一种称为图像修补的技术。基本的想法很简单:用邻近的像素替换......
  • CFgym103260K-Rectangle Painting
    前言断续地调了一天一夜,终于做出来了!题目链接-RectanglePainting大概就是:给\(n\)个集合\(S_i\),两种操作,1{[l,r],x}lr向\(S_l\)到\(S_r\)插入\(x\)2lr询问\(\max\limits_{i=l}^r\{\text{mex}(S_i)\}\)。但是强制在线!\(1\len,l,r\le2\times10^5,1\le......
  • 洛谷_[P4084]Barn Painting G题解
    题目链接这题我们可以定义一个二维的dp数组,在dp[i][j]中:i表示对于节点i,j有1,2,3三种状态,表示当点i选择被染成颜色j时,以i为根的这颗子树有多少种染色方法。那么根据乘法原理,节点i的方案数肯定等于i的每个儿子的方案数量之积。这道题整个挺简单的,剩下细节......