暴力\(DP\) 考虑暴力\(DP\),我们设\(f_{i,j}\)表示当前覆盖长度为\(i\),上一次折叠长度为\(j\)的方案数. 转移时需要再枚举这次的折叠长度\(k\)(\(k\ge j\)),转移方程如下: \[f_{i+2k-j,k}+=f_{i,j}\] 对于左.右两边,根据不同的初始化\(DP\)两遍. 统计时枚举两边覆盖长度计算即可. 优化\(DP\) 实际上,我们可以把这个\(DP\)拆成两个数组,一个表示左端点在\(x\)位的方案数,另一个表示右端点在\(y\)位的方案数.…
树形\(DP\) 考虑设\(f_{i,j,k}\)表示在\(i\)的子树内,从\(i\)向下的最长链长度为\(j\),\(i\)子树内直径长度为\(k\)的概率. 然后我们就能发现这个东西直接转移是几乎不可能的. 所以我们在转移时要开个辅助数组\(s_{op,x,y,k}\),其中\(op\)用于滚存,表示最长链为\(x\),次长链为\(y\),子节点子树内直径长度小于等于\(k\)的概率. 然后我们只要枚举子节点,再枚举子节点子树内的链长,就可以采用刷表法简便地\(DP\)转移了. 这样看似\…
数位\(DP\) 首先考虑二进制数\(G(i)\)的一些性质: \(G(i)\)不可能有连续两位第\(x\)位和第\(x+1\)位都是\(1\).因为这样就可以进位到第\(x+2\)位.其余情况下,这个\(G(i)\)必然合法. 对于一对\(x,y\)满足\(x<y\),则\(G(x)<G(y)\). 则根据这些性质,我们就可以考虑数位\(DP\). 按照一般数位\(DP\)的套路,我们把对\(a\sim b\)的\(DP\)转化为对\(1\sim a-1\)和\(1\sim b\)的两个\(…
找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 #include<bits/stdc++.h> #define Tp template<typename Ty> #define Ts template<typename Ty,typename... Ar> #define Reg register #define RI…
树形\(DP\) 实际上,这道题应该不是很难. 我们设\(f_{x,i,j}\)表示在以\(x\)为根的子树内,原本应输出\(i\),结果输出了\(j\)的情况数. 转移时,为了方便,我们先考虑与,再考虑非,即先转移,再交换\(f_{x,0,0}\)和\(f_{x,1,1}\),\(f_{x,1,0}\)和\(f_{x,0,1}\). 这样一来,转移方程如下: \[f_{x,i1\&i2,j1\&j2}=\sum f_{x,i1,j1}*f_{son,i2,j2}\] 然后,在转移结束,交…
目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h(实际) 期望得分:100+100+20 实际得分:100+100+100 T3:数据较水+时限较大+常数小+std也就是个暴力!!! = 暴力AC = 休闲半上午 = 辣鸡题目 A 购物shop 直接nth_element. 因为\(m\leq100\),堆也是可以的. #include <cst…
心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. 开场发现T1只要用堆维护一下就行,20min切掉,时间有点长因为花了好长时间在找pbds的头文件.. T2很裸的拆位+期望dp,就是分情况讨论有点恶心. T3我想了1h结果正解是压位优化暴力qnmd... 咦?好像连题解一块写完了....那就只贴一下代码吧.. 算了代码也懒得发了数据包戳着儿…
这次模拟赛真的,,卡常赛. The solution of T1: std是打表,,考场上sb想自己改进匈牙利然后wei了(好像匈牙利是错的. 大力剪枝搜索.代码不放了. 这是什么神仙D1T1,爆蛋T1,好像A了它或拿分的就几个人,, The solution of T2: 题解是这么写的:和八皇后很像,八皇后是x+y和x-y来判重,这里就k1x+k2y来判重. 从各个点引出直线,带入原点检验方程即可. 注: x/y = Δx/Δy x*Δy = Δx*y 下面代码用了这个原理,省去了gcd(或…
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] 中位数为 ai(我们比较序列中两个位置的数的大小时, 以数值为第一关键字,下标为第二关键字比较.这样的话 [l, r] 的长度只有可能是奇数),r - l + 1 就是 i 的优美值. 接下来有 Q 个询问,每个询问 [l, r] 表示查询区间 [l, r] 内优美值的最大值.2.2 输入 第一行输…
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 vi 的金坷垃,或者除掉最 新 vi 层(不是量)撒的金坷垃.如果上面只留有不足 vi 层金坷垃,那么就相当于电脑上 面没有金坷垃了. duyege 非常严谨,一开始先给你 m 个上述操作要你依次完成.然后又对实验步骤进行 了 q 次更改,每次更改都会改变其中一个操作为另外一个操作.每次修改之后都…