上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页
摘要: P4438 [HNOI/AHOI2018]道路 题意: 从叶子节点到根节点,会经过 \(i\) 条烂公路 \(j\) 条烂铁路。 每个叶子节点的贡献为 \(c[i]*(a[i]+i) * (b[i]+j)\) 我们可以翻修 \(n-1\) 条路,求 \(\sum_{叶子节点 i} c[i]*(a[i 阅读全文
posted @ 2021-09-22 17:32 Evitagen 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 图片来源 扫描线: 使用一条垂直于 \(x\) 轴的直线,从左到右扫描这个图形,例如这样: 只有碰到矩形的左边界或者是右边界时这个线段所扫描到的情况才会改变。 因此,我们可以把所有矩形的入边和出边按 \(x\) 值排序,根据 \(x\) 值从小到大去处理。 用线段树维护扫描到的情况。 如上图: 如果 阅读全文
posted @ 2021-09-22 16:15 Evitagen 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 线段树进阶:\(pushdown\) 如果我们每进行一次加的操作,就将全部线段树更改一边,时间复杂度会很高。 因此,我们需要进行一个延迟加和的操作。 思路:如果 \([l,r]\) 区间增加 \(a\),在查询时,就可以把 \([l,r]\) 区间标记的增加量推下去就可以直接求值了。 这时候,我们需 阅读全文
posted @ 2021-09-22 16:14 Evitagen 阅读(712) 评论(0) 推荐(0) 编辑
摘要: P3780 [SDOI2017]苹果树 题目大意: 给定一个有根树,每个节点有权值 \(v_i\),节点值至多取 \(a_i\) 次,选儿子节点一定要同时选父亲节点一次,取 \(k\) 个节点值。 除此之外,还可以取一条最长链,求最大权值。 思路: 拿到这道题,先转化成理解的形式:树上背包 \(dp 阅读全文
posted @ 2021-09-22 12:41 Evitagen 阅读(83) 评论(0) 推荐(0) 编辑
摘要: P3413 SAC#1 - 萌数 解题思路: 我们反着来考虑这道题:如何判断一个数不含回文串。 思考一下,会发现:当一个数的任意一位都不和前两位的数字相同时,这个数就不含回文串 设 \(f[pos][pre][gpre]\) 表示在 \(pos\) 位时前一位是 \(epre\) 前两位是 \(gp 阅读全文
posted @ 2021-09-18 19:41 Evitagen 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 数位dp 特点: 数据范围贼大 \(O(n)\) 算法绝对不行 看上去很套路,统计各种数在序列中出现的个数或者之类的。 引入: 数位 \(dp\) 解决的是什么问题呢? 一般来说:求出在给定区间中,符合条件 \(f(i)\) 的数 \(i\) 的个数,条件 \(f(i)\) 一般和数的大小没关系,和 阅读全文
posted @ 2021-09-18 19:41 Evitagen 阅读(68) 评论(0) 推荐(1) 编辑
摘要: CF1521 C:Nastia and a Hidden Permutation 一个比较容易想的策略是,先找到 \(1\),然后一个个求出剩下的。 如果询问 \(t=2,x=1\),回答就是 \(min(max(1,p_i),max(2,p_j))\)。如果回答 \(≤2\),可以断言 \(p_i 阅读全文
posted @ 2021-09-17 22:13 Evitagen 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 状压题目详解 P3475 [POI2008]POD-Subdivision of Kingdom 本题是让我们求出来点集合,看数据范围,\(n\leq 26\) 。 我们枚举所有点存在的情况,普通的状压肯定不行( \(26\) 还是挺大的). 我们因此考虑搜索:因为 \((^{26}_{13}) \ 阅读全文
posted @ 2021-09-17 19:41 Evitagen 阅读(35) 评论(0) 推荐(0) 编辑
摘要: CF1515 A:CF1515A Phoenix and Gold 因为所有数并不相同,所以这个题解决起来很简单,如果前缀和 \(ans=x\) 时,交换前后两个数位置就行了,其他的正常输出。 #include<bits/stdc++.h> using namespace std; int T,n, 阅读全文
posted @ 2021-09-16 21:44 Evitagen 阅读(35) 评论(0) 推荐(0) 编辑
摘要: P5675 [GZOI2017]取石子游戏 有两种 \(Alice\) 不胜利的方法: \(SG\) 之和为 \(0\) ,肯定不成功 \(SG\) 之和不为 \(0\) ,选择的堆的石子的个数,一定小于其他石子堆石子个数的异或和。 为什么呢?从二进制考虑:无论从该堆选择多少石子,都无法将异或和变为 阅读全文
posted @ 2021-09-16 18:00 Evitagen 阅读(44) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页