随笔分类 -  题解

摘要:题目链接:https://www.luogu.com.cn/problem/P4315 题意:一棵有边权的树,维护树上的链加、链覆盖、修改边权、链上max 题解: 好难写... 首先把边权转化为儿子的点权 然后树链剖分,需要注意覆盖和加的先后顺序。可以这么考虑: 有一串操作,为 加 覆盖 加 覆盖 阅读全文
posted @ 2022-11-02 20:42 SkyRainWind 阅读(20) 评论(0) 推荐(0) 编辑
摘要:概括:边权为0/1的图求最短路,常见于网格图的bfs。本质是特殊的dijkstra,因为边权只有0/1,不再需要优先队列维护 Luogu4667 注意需要维护的是格点的坐标和格子的坐标,然后边权如果为0(不换)就push_front,如果为1(换)就push_back // by SkyRainWi 阅读全文
posted @ 2022-11-01 20:48 SkyRainWind 阅读(87) 评论(0) 推荐(0) 编辑
摘要:比赛链接:https://codeforces.com/contest/1740/ 题解: AB 简单题 // by SkyRainWind #include <cstdio> #include <vector> #include <cstring> #include <iostream> #inc 阅读全文
posted @ 2022-11-01 10:45 SkyRainWind 阅读(20) 评论(0) 推荐(0) 编辑
摘要:比赛链接:https://codeforces.com/contest/1754 题解: AB 水题 // by SkyRainWind #include <cstdio> #include <vector> #include <cstring> #include <iostream> #inclu 阅读全文
posted @ 2022-10-27 15:36 SkyRainWind 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/contest/1746/problem/D 题解: 显然,对于某个点,如果此时经过该点的路径个数为t,那么他的儿子的经过个数一定为t/|son|或者t/(|son|+1),直接枚举哪些位置+1是指数级别的,注意到总共有多少个+1是 阅读全文
posted @ 2022-10-19 21:59 SkyRainWind 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/contest/708/problem/C 题解: 有一个简化:我们把重心当成根,这样所有点,如果不是重心,问题只可能出在该点向上的那个“子树”中 考虑对每个点维护向上子树中的最大的不超过n/2的子树大小,这样最后判断一下去掉这个子树之后大小是 阅读全文
posted @ 2022-10-19 17:42 SkyRainWind 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2167 题解: 摘录一段描述容斥题目的话: 本题中, 关于容斥系数,可以先感性理解一下,严格证明可以用 即除了自身,自身的超集都计算了0次,自身计算了一次 这样可以写出 答案就是对所有大小为k的集合 q(S)很好算, 阅读全文
posted @ 2022-10-11 20:58 SkyRainWind 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P5664 题解: 首先注意到至多有一个食材可能超过一半 不妨枚举这个食材,然后统计其超过一半时的方案数,最后容斥一下减去即可 一个比较初级的想法是钦定了第col列,设dp[i][j][k]表示考虑到第 i 行,第 co 阅读全文
posted @ 2022-10-11 15:42 SkyRainWind 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://atcoder.jp/contests/arc101/tasks/arc101_b 题解: 直接求序列的中位数不好求,考虑分析性质: 设bi=(1)[aik],如果[l,r]的中位数小于 k,那么b的和一定大于0,而且这个和一定随k增大 阅读全文
posted @ 2022-10-11 09:27 SkyRainWind 阅读(21) 评论(0) 推荐(0) 编辑
摘要:概念题 滑动窗口 模板题,维护一个值和一个下标即可 Luogu2216 首先对每行做一遍滑动窗口,然后发现其实列也是个滑动窗口 // by SkyRainWind #include <cstdio> #include <vector> #include <cstring> #include <ios 阅读全文
posted @ 2022-10-07 21:30 SkyRainWind 阅读(18) 评论(0) 推荐(0) 编辑
摘要:比赛链接:https://codeforces.com/contest/1739 AB 水题 // by SkyRainWind #include <cstdio> #include <vector> #include <cstring> #include <iostream> #include < 阅读全文
posted @ 2022-10-05 20:33 SkyRainWind 阅读(14) 评论(0) 推荐(0) 编辑
摘要:2607:一个基环树,有点权,全是有向边,选儿子则不能选父亲(反之亦然),问选出的集合的最大点权和 注意到题目的特殊性,如果i->hatred[i],那么就是一个内向树,否则为外向树 内向树好找环,但是不方便统计答案,于是想到可以用外向树,在环上任一点断环成链,然后做两次树形dp(因为这一条边也是要 阅读全文
posted @ 2022-09-28 17:52 SkyRainWind 阅读(19) 评论(0) 推荐(0) 编辑
摘要:心血来潮看了看18年的联赛,感觉自己进步很大= = Day1 T1 对于一个“波”来说,显然需要的次数为最大的数(波峰),对于多个“波”,就每次记录一下从波底到波峰的高度差即可,这可以用差分简单实现 // by SkyRainWind #include <cstdio> #include <vect 阅读全文
posted @ 2022-09-24 21:42 SkyRainWind 阅读(13) 评论(0) 推荐(0) 编辑
摘要:一句话概括:浮点二分求解∑a/∑b的极值问题 引入:首先是这个题,浮点二分之后树上背包 进阶应用:最小(大)比率生成树/最小(大)比率生成环 以最大为例,关键就是考虑如果小了的话如何判断 生成树中,比如要让生成树的∑a/∑b最大,即∑a/∑b r,化简为∑(a-br) 0 阅读全文
posted @ 2022-09-17 19:35 SkyRainWind 阅读(14) 评论(0) 推荐(0) 编辑
摘要:C: 转化一下就是取中间部位,绝对值之和最小 // by Balloons #include <cstdio> #include <vector> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> 阅读全文
posted @ 2022-09-16 17:46 SkyRainWind 阅读(16) 评论(0) 推荐(0) 编辑
摘要:对于某个排列p,将ipi建个图发现这时对应的答案就是lcm(),注意与环中哪些数无关。 进一步观察可以发现这实际上就是这个问题:从n的排列中分成m个部分,令p=m个部分的size的lcm,求不同p的和/个数 看到lcm可以考虑质因子 阅读全文
posted @ 2022-09-14 15:25 SkyRainWind 阅读(12) 评论(0) 推荐(0) 编辑
摘要:其实已经做了不少题了,开个坑记一下在之前培训中遗留下来的题 CF327E 状压dp水题。一个小trick,如何比线性快的获取S的每位二进制? for(int i = S;i;i -= lowbit(i))dp[S] += dp[S & ~lowbit(i)]要比每位分别判断要快 BZOJ4057 阅读全文
posted @ 2022-09-13 18:44 SkyRainWind 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3354 题解: 考虑树形dp 设f[i][j][k]表示考虑到 i 点,j 是i的祖先中与i最近的伐木场,i及子树中共有 k 个伐木场的最小代价 我们发现,这样设状态无法表示 i 是否有伐木场这个条件,因此钦定 f[ 阅读全文
posted @ 2022-09-10 13:59 SkyRainWind 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3201 题解: 考虑启发式合并,即每次把数量小的颜色块合并到大的颜色块上 对于每个颜色块,我们可以使用链表维护,具体写法可以采用前向星。(当前位置的nxt置为head[x], head[x]=当前位置),这里head[p 阅读全文
posted @ 2022-09-05 14:58 SkyRainWind 阅读(15) 评论(0) 推荐(0) 编辑
摘要:A 普及组题 // by Balloons #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define mpr make_pair #define debug() cerr<<"Madok 阅读全文
posted @ 2022-09-03 17:13 SkyRainWind 阅读(74) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示