切题笔记
弹飞绵羊
听我怒吼
展开
-
[NOIP2018]赛道修建 (树形dp+Multiset)
二分赛道长度。贪心尽量拼赛道,上传未用到的赛道中最大的一条。multisetmultisetmultiset开全局应该好一点,就不用吸氧了QWQQWQQWQ但是应该要在所有儿子遍历完之后再循环一次,将所有儿子上传的长度一起丢进setsetset。不然会把儿子和自己的混在一起嘤嘤嘤二分边界可以再写一个最长链(没必要),也可以用边权sum/Msum/Msum/M.算sumsumsum的时候...原创 2019-07-25 16:26:55 · 200 阅读 · 0 评论 -
[HNOI2010]弹飞绵羊 (数列分块)
数列分块入门-HzwerHzwerHzwer[Hnoi2010][Hnoi2010][Hnoi2010]弹飞绵羊题解-i207Mi207Mi207MLctLctLct裸题,分块也可做。普通暴力在改变弹力系数时不大方便。考虑分块,记录跳出块内所需步数StiSt_iSti和跳出块后到达的点ToiTo_iToi,这样就只用考虑块内影响。(真 全咕最大常数代码)#include<c...原创 2019-07-24 17:24:36 · 124 阅读 · 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 · 133 阅读 · 0 评论 -
[HNOI/AHOI2018]道路(倒推)
题解-KelinKelinKelin代码实现听说要卡空间?总之200+MB200+MB200+MB水过 #include<cstdio>#include<cstring> const int MAXN = 2e4 + 10long long f[MAXN][42][42];int son[MAXN][3], a[2 * MAXN], b[2 * MAXN]...原创 2019-07-26 17:19:18 · 135 阅读 · 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 · 156 阅读 · 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 · 113 阅读 · 0 评论