- 2024-10-28[CQOI2007] 涂色
仔细想想其实没有dX说的那么夸张。考虑一个结论:一定存在一种最优方案使得使得任意一次染色的区间一定是完全包含之前某一次染色区间或者与之前某一次染色区间完全不交且不与之前所有染色区间相交。简单来说,如果我们当前的染色方案与之前某一次相交,那么我们完全可以缩短当前染色
- 2024-10-22P4170 [CQOI2007] 涂色 区间 dp
P4170[CQOI2007]涂色区间dp模板题,不理解为什么是蓝。将现在考虑的区间\([l,r]\)分为\([l,k]\)和\([k+1,r]\),如果\(s_l=s_r\)就可以一起涂,少涂一次。方程:\[dp_{l,r}=\min_{k=l}^{r-1}dp_{l,k}+dp_{k+1,r}-[s_l=s_r]\]代码:#include<bits/stdc++.h>usingnamespac
- 2024-10-04P4170 [CQOI2007] 涂色
算法看完题目不好想到思路逆向思维,考虑从目标串刷成一个由全部相等的颜色组成的串由于一刷刷一堆想到区间状态设\(dp_{l,r}\)表示区间\([l,r]\)的最少涂抹次数状态转移分类讨论\(S_l=S_r\text{且}l<r\)此时分别去掉两个端点,观察发现设覆盖了\(l\)
- 2024-09-19[CQOI2007] 涂色
[CQOI2007]涂色题意给出一个字符串,每个位置有一种颜色。有一个初始无颜色的字符串,每次可以把一段字符染成同一种颜色。求最少染多少次色,能把两个字符串变成一样。思路区间动态规划。定义\(dp_{i,j}\)表示把\([l,r]\)这段区间染成一样需要的最小次数。发现染色有两种
- 2024-08-20P2261 [CQOI2007] 余数求和 题解
题目传送门思路数学数学非常经典的题目注意到\(k\bmodi=k-\lfloork/i\rfloor*i\)。于是可以对题目进行转化,从求\(G(n,k)=\sum_{i=1}^kn\bmodi\)变为求\(G(n,k)=n\timesk-\sum_{i=1}^n\lfloork/i\rfloor\timesi\),所以仅需求出\(\sum_{i
- 2023-12-11P4170 [CQOI2007] 涂色(天赋哥不要点进来)
前言翻遍洛谷题解,看到大家都在套模板,却很少有人讲出为什么,使我十分崇拜天赋哥。原题链接关于这题的一些事实性证据事实1.来自事实2.来自事实3.来自事实4.来自整理上述事实1.每一次”最短“最优涂色,要么在其他颜色的基础上涂,这称之为融入一个整体;要么另辟蹊径单独
- 2023-01-11CQOI2007,洛谷P4710涂色
题目描述假设你有一条长度为\(5\)的木版,初始时没有涂过任何颜色。你希望把它的\(5\)个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为\(5\)的字符串表示这个目
- 2023-01-09P2261 [CQOI2007]余数求和
(昨天发病写题解,结果一看早就截止了)前置知识:数列分块我们先看一个式子\[\sum_{k=1}^{n}\lfloor\sqrtk\rfloor\]化简我们稍微枚举一下,就会发现这样一个性质这
- 2022-09-29P4170 [CQOI2007]涂色
#include<bits/stdc++.h>usingnamespacestd;#defineN111intf[N][N],n;charch[N];signedmain(){ memset(f,0x3f3f3f3f,sizeof(f)); scanf("%s",ch+1); n=st
- 2022-09-04P2261 [CQOI2007]余数求和
P2261[CQOI2007]余数求和分析求的式子为\(ans=\sum_{i=1}^{n}k\%i\),我们首先需要知道的是\(a\%b=a-b*\left\lfloor\frac{a}{b}\right\rfloor\),则式子就变成了。