上一页 1 2 3 4 5 6 7 ··· 55 下一页
摘要: Link 设$f_{i,j,k}$表示只考虑前$i$行,这$i$行都连通,且第$i$行剩下的瓷砖区间为$[j,k]$的概率。 不难得到转移$f_{i,j,k}=p_{j,k}\sum\limits_{[l,r]\cap[j,k]\ne\emptyset}f_{i-1,l,r}$。 其中$p_{j,k 阅读全文
posted @ 2020-06-03 09:23 Shiina_Mashiro 阅读(174) 评论(0) 推荐(0)
摘要: Link 考虑用两个栈模拟双端队列,每次加进来一个元素就处理出新的背包数组。 查询的话不妨固定左边的栈的特征值,那么右边的栈可以取到的特征值是一个区间,单调队列维护即可(我写的ST表)。 删除的话直接把元素弹出栈就行了,不用管背包数组(当然memset一下也没有问题)。 可能会出现把一个栈删空了的情 阅读全文
posted @ 2020-06-03 08:23 Shiina_Mashiro 阅读(292) 评论(0) 推荐(0)
摘要: ##\(\text{Day 1}\) ###\(\text{ビルの飾り付け 4}\) AT 设$f_{i,0/1,j}$表示考虑前$i$个数,第$i$个数是$A/B$,总共有$j$个$A$的方案是否存在。 可以证明在固定前两维的情况下合法的第三维下标是一个区间,那么记录左右多点进行转移即可。 #in 阅读全文
posted @ 2020-06-01 14:47 Shiina_Mashiro 阅读(282) 评论(0) 推荐(1)
摘要: Link 我们以有陷阱的房子为根。 一旦老鼠向下进入一个子树内,且管理员不帮它清理上一次走过的道路,那么它最终会被自己弄脏的走廊困在某个叶子节点。 老鼠被困在叶子节点之后管理员的最优决策一定是先把这个叶子节点到根节点路径上的岔路口全部堵上,然后一次次把老鼠当前位置到父亲的边清理直到老鼠走到根。 因此 阅读全文
posted @ 2020-06-01 11:31 Shiina_Mashiro 阅读(183) 评论(0) 推荐(0)
摘要: Link 求LCS有一个显然的$O(n2)$的dp做法,即设$f_{i,j}$表示$s_i,t_j$的lcs长度,那么$f_{i,j}=\max(f_{i-1,j},f_{i,j-1},f_{i-1,j-1}+[s_i=t_j])$。 $t$是题目给定的,因此在已知$f_,s_i$的情况下我们是可以 阅读全文
posted @ 2020-06-01 09:53 Shiina_Mashiro 阅读(135) 评论(0) 推荐(0)
摘要: ###铺地毯 Link 模拟。 #include<cstdio> const int N=10007; int a[N],b[N],g[N],k[N]; int read(){int x;scanf("%d",&x);return x;} int main() { int n=read(),x,y; 阅读全文
posted @ 2020-05-31 20:28 Shiina_Mashiro 阅读(238) 评论(0) 推荐(0)
摘要: ###程序自动分析 Luogu LOJ UOJ BZOJ 用并查集维护相等关系即可。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; namespace IO 阅读全文
posted @ 2020-05-31 16:31 Shiina_Mashiro 阅读(136) 评论(0) 推荐(0)
摘要: ###优秀的拆分 Luogu LOJ UOJ BZOJ 设$f_i,g_i$分别表示以$i$结尾/开头的形如$AA$的串的个数,那么答案就是$\sum f_ig_{i+1}$。 考虑枚举$A$的长度$len$,那么形如$AA$的串一定会过至少两个下标为$len$的倍数的位置(我们称之为关键位置)。 阅读全文
posted @ 2020-05-31 15:38 Shiina_Mashiro 阅读(180) 评论(0) 推荐(0)
摘要: ###泳池 Luogu LOJ UOJ BZOJ 先用差分转成$\le k$的概率减去$\le k-1$的概率。 设$f_{i,j}$表示总共有$i$列,默认$1,\cdots,j$行一定全部安全,第$j+1$行存在至少一个危险的点,保证当前最大合法子矩形面积$\le k$的概率。 转移方程为$f_ 阅读全文
posted @ 2020-05-31 15:21 Shiina_Mashiro 阅读(169) 评论(0) 推荐(0)
摘要: ###归程 Luogu LOJ UOJ BZOJ 不难发现一定是先开车走一段路直到下条边海拔不超过水位,然后下车沿最短路走到$1$号点。 按海拔降序建出Kruskal重构树,对于一次询问,找到$v$的祖先中深度最低的海拔高于水位低的点$u$,那么$u$的子树中的叶子节点就是$v$可以开车到的点。 预 阅读全文
posted @ 2020-05-31 14:48 Shiina_Mashiro 阅读(171) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 55 下一页