cunzai_zsy0531

关注我
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: 题面 罕见的数位dp好题。 首先感觉这个题想数位dp有点困难,很多东西都在变。注意到每个数位数字和其实最大也才一百多,考虑枚举这个和,统计被这个和整除且数位和等于这个和的数的个数就完事了。 点击查看代码 #include<iostream> #include<cstdio> #include<cst 阅读全文
posted @ 2022-05-20 11:54 cunzai_zsy0531 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题面 这个题是二维的情况,一个点向一个矩形连边。一维的时候就是线段树优化建图,这里只能树套树优化建图了。但是这道题空间只有128MB,显然空间不能达到 \(O(n\log^2 n)\) 级别,所以考虑线段树套平衡树 (set) 来解决。 一个通常用来解决这种问题的方案是,不直接连边,而是把每个矩形在 阅读全文
posted @ 2022-05-20 11:53 cunzai_zsy0531 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题面 这题很有意思,正解做法是线段树优化建图之后跑tarjan强连通分量然后在DAG上做一些奇奇怪怪的统计,但是这题有神仙 \(O(n)\) 做法!(虽然我不会证明但是跑的的确很快啊) 说的是,首先注意到先点一个,最后爆炸的炸弹一定是一个区间。所以现在问题转化成了对于每个 \(i\) 求爆炸的左右端 阅读全文
posted @ 2022-05-19 16:58 cunzai_zsy0531 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题面 dp有后效性,转移看作边之后会成环。这时候一般需要建出图来跑最短路。 这道题的最短路有些不一样,方程为 \(f_i=\max(a_i,b_i+\sum\limits_j f_j)\),比较像最短路的松弛操作。spfa每次从队列里取出 \(u\) 来之后,遍历所有相邻点 \(v\),记录一个和, 阅读全文
posted @ 2022-05-19 16:51 cunzai_zsy0531 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题面 看起来就很像是一道数位dp,\(L\) 和 \(R\) 很大,并且限制和大小没关系。考虑状态的设计:剩余长度 \(len\),是否有上限限制 \(lim\),这两个肯定是必须的。因为要统计连续三个位置相同,所以要记录 \(pre1,pre2\) 表示前两位是什么数(当然也可以记录上一位和它们两 阅读全文
posted @ 2022-05-19 16:49 cunzai_zsy0531 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题面 开一棵线段树,区间内合并左右儿子的时候,如果颜色相同则赋成此颜色,否则直接赋成 \(0\),第三个操作只需要区间 \([l,r]\) 答案不为 \(0\) 且两边颜色不一样即可。比较简单,复杂度 \(O(n\log n)\)。 点击查看代码 #include<iostream> #includ 阅读全文
posted @ 2022-05-19 16:39 cunzai_zsy0531 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题面 前两个操作放过来看似是一道线段树题,但是发现线段树无法维护第三个操作。考虑使用平衡树(fhqtreap)来解决这个问题,前两个操作和线段树差不多,直接split出来打加法和乘法标记即可。第三个操作大概就是把 \(R\) 位置的系数加到 \(R+1\) 位置并且删除,在 \(L\) 的左边加一个 阅读全文
posted @ 2022-05-19 16:37 cunzai_zsy0531 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题面 考虑异或可以表示成前缀和的形式,则 \(a[p]\oplus a[p+1]\oplus\ldots \oplus a[n]\oplus x=s[p-1]\oplus s[n] \oplus x\)。后面都是知道的,所以可以拿着 \(s[n]\oplus x\) 的值去01-trie上做匹配。注 阅读全文
posted @ 2022-05-19 16:28 cunzai_zsy0531 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题面 考虑把操作时间当作下标建立线段树,每次操作要么是单点修改为 \(x\),要么是修改为 \(1\)。输出答案就是输出线段树根节点的答案。 点击查看代码 #include<iostream> #include<cstdio> using namespace std; const int N=1e5 阅读全文
posted @ 2022-05-19 16:24 cunzai_zsy0531 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题面 本来就是个裸的KMP,但是这个题是有删除的,所以可以维护一个栈,每次的 \(j\) 都继承栈顶元素的 \(j\),然后如果找到了一个匹配,就直接弹栈即可。因为只会进栈 \(O(n)\) 次,所以总复杂度也是 \(O(n)\) 的。这个题算是栈的妙用了。 点击查看代码 #include<iost 阅读全文
posted @ 2022-05-19 16:22 cunzai_zsy0531 阅读(26) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页