
切题笔记
弹飞绵羊
听我怒吼
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[NOIP2018]赛道修建 (树形dp+Multiset)
二分赛道长度。 贪心尽量拼赛道,上传未用到的赛道中最大的一条。 multisetmultisetmultiset开全局应该好一点,就不用吸氧了QWQQWQQWQ 但是应该要在所有儿子遍历完之后再循环一次,将所有儿子上传的长度一起丢进setsetset。 不然会把儿子和自己的混在一起嘤嘤嘤 二分边界可以再写一个最长链(没必要),也可以用边权sum/Msum/Msum/M. 算sumsumsum的时候...原创 2019-07-25 16:26:55 · 276 阅读 · 0 评论 -
[HNOI2010]弹飞绵羊 (数列分块)
数列分块入门-HzwerHzwerHzwer [Hnoi2010][Hnoi2010][Hnoi2010]弹飞绵羊 题解-i207Mi207Mi207M LctLctLct裸题,分块也可做。 普通暴力在改变弹力系数时不大方便。 考虑分块,记录跳出块内所需步数StiSt_iSti和跳出块后到达的点ToiTo_iToi,这样就只用考虑块内影响。 (真 全咕最大常数代码) #include<c...原创 2019-07-24 17:24:36 · 187 阅读 · 0 评论 -
[USACO10MAR]伟大的奶牛聚集 (树形dp)
设uuu是vvv的父亲,dp[u]dp[u]dp[u]是走到uuu的总代价。 设tottottot是总点权,c[u]c[u]c[u]是uuu和它的子树的点权和。 可以发现,集合点从uuu变成vvv的总代价变动为: 1:u1:u1:u和它的子树向vvv走(u,v)−>c[u]∗(u,v)(u,v)->c[u]*(u,v)(u,v)−>c[u]∗(u,v) 2:2:2...原创 2019-07-26 12:40:25 · 181 阅读 · 0 评论 -
[HNOI/AHOI2018]道路(倒推)
题解-KelinKelinKelin 代码实现 听说要卡空间? 总之200+MB200+MB200+MB水过 #include<cstdio> #include<cstring> const int MAXN = 2e4 + 10 long long f[MAXN][42][42]; int son[MAXN][3], a[2 * MAXN], b[2 * MAXN]...原创 2019-07-26 17:19:18 · 192 阅读 · 0 评论 -
[SCOI2016]萌萌哒
QuestionQuestionQuestion 一个长度为 nnn 的大数,用 S1S2S3⋯SnS_1S_2S_3 \cdots S_nS1S2S3⋯Sn表示,其中 SiS_iSi 表示数的第 iii 位, S1S_1S1 是数的最高位。告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2,r2l_1,r_1,l_2,r_2l1,r1,l2,r2,即两个长度相同的区间...原创 2019-07-18 17:51:46 · 223 阅读 · 0 评论 -
22行AC[USACO12FEB]附近的牛(树形dp)
NearbyCows−CENearbyCows-CENearbyCows−CE自动机 代码实现 我们并不需要知道树中的父子关系,只需要知道每个点的相邻节点。 这个可以通过输入直接得到QWQQWQQWQ 就不用dfsdfsdfs辣! 记得初始化 #include<cstdio> const int MAXN = 1e5 + 10; int N, K; int f[MAXN], t[MA...原创 2019-07-28 11:20:18 · 177 阅读 · 0 评论