摘要:
"P4137 Rmq Problem / mex" 主席树的大水题 维护每个自然数前一个出现的位置 关于查询$l,r$区间,在第$r$颗主席树查询位置小于$l$的第一个数 cpp include include include include include using namespace std; 阅读全文
摘要:
"P3746 [六省联考2017]组合数问题" $dp_{i,j}$表示前$i$个物品,取的物品模$k$等于$r$,则$dp_{i,j}=dp_{i 1,(j 1+k)\%k}+dp_{i 1,j}$ $dp_{i,0},dp_{i,1},dp_{i,2}.....dp_{i,k 1}$ $\Lon 阅读全文
摘要:
"P2461 [SDOI2008]递归数列" 纪念不看题解$A$掉的第一个矩阵快速幂 先做完模板题吧 "p1939" 矩阵开$(k+1)^2$,定义函数$f_x$为$\sum\limits_{i=1}^xa_i$,显然$f_x=f_{x 1}+a_i$ $a_{i 1},a_{i 2}.....a_ 阅读全文
摘要:
"P3715 [BJOI2017]魔法咒语" 用基本词汇组成$L$长度的单词,其中不能包含禁忌词汇 用禁忌词汇建强大的$tire$图 解决: 分类讨论,$L include using namespace std; typedef long long LL; const LL maxn=1010; 阅读全文
摘要:
题目 纪念不看题解$A$掉的第一个斜率优化dp: "P3195 [HNOI2008]玩具装箱TOY" 一个月后补的重点 :斜率优化的本质就是利用推出来的公式决定维护一个凸包,用单调队列来维护这个凸包,因为我们假定$jdp_k$,所以每次决策显然就取队头,从而得到最优解 做法 定义数组$sum_i$为 阅读全文
摘要:
"P5111 zhtobu3232的线段树" 维护左子树右子树的贡献和跨区间贡献 cpp include using namespace std; typedef long long LL; const LL maxn=10000000; const LL inf=2147483646; const 阅读全文
摘要:
"P3261 [JLOI2015]城池攻占" 乍一看,平衡树? 其实左偏树更好做啦$qwq$ 每个节点都来棵左偏树维护最小值,$dfs$往上时合并一下,要是攻不下了就把根节点删掉,直到能攻下, 对了,攻下后值会变化怎么办?$lazy$标记一下,和线段树同理 My complete code: cpp 阅读全文
摘要:
[P4891 序列]{https://www.luogu.org/problemnew/show/P4891} 毒瘤线段树 区间维护: $pa:a=b的b积$ $max\_a:最大a$ $min\_b:a include using namespace std; typedef long long 阅读全文
摘要:
"P3311 [SDOI2014]数数" 看到匹配,自然想到AC自动机 控制位数的当然容易做,$emmm$ 这里是要求小于$n$,后面不会了怎么办 好像和数位dp有点关系,首先$dp1_{i,j}$跑一边,小于$strlen(n)$长度的个数 重点来了,$dp2_{i,j,1/0}$ 第三维表示是否 阅读全文
摘要:
"P3041 [USACO12JAN]视频游戏的连击Video Game Combos" 看到匹配,当然用AC自动机 常我们有文本串,这里仅给出长度,怎么计算得分呢 按模式串建自动机,跑一边$dp$,字符集较小,都不需要统计每个点的值 直接往上扫累加就行 My complete code: cpp 阅读全文