上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要: 把囚犯分成两部分,显然是一个二分图 二分答案,使问题状态化简为1和0,考虑如何check 贪心:如果两个囚犯之间怨气值小于等于mid,则不用管他们,否则把他们分成两拨(染异色) #include<bits/stdc++.h> using namespace std; #define IOS ios: 阅读全文
posted @ 2022-04-05 09:39 qingyanng 阅读(27) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.com.cn/problem/P3698 f[u][j] 表示在以u为根节点的子树中分配多少步能走到的最多的点数,树上背包那样转移,但这样显然是不对的,跑到另一棵子树时候还要往回走而从消耗步数 影响每棵树的可分配步数以及遍历子树情况的是是否回到根节点 f[u][j 阅读全文
posted @ 2022-04-04 10:02 qingyanng 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 最大值很好求,注意树形dp考虑一棵子树时根节点一定选,不管是不是负的。 方案的差别是选择城镇的差别所以有两种情况:1.一棵子树中选择k个节点时从大到小第k+1个节点和k节点值相同。2.存在最值为0的节点 但是出现以上情况的节点不一定能向上转移,也就是出现在最优方案中,我们只要再开一个dp数组f,表示 阅读全文
posted @ 2022-04-03 17:07 qingyanng 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个串每个串都是abcdefghijklmnopqrstuvwxyz的一个子序列,每次可用一个串中的字母随意个来组成长度为l的串,求方案 思路:对于一个有m个字母串的方案是l个位置一个位置有m种选择,所以是m的l次方。 我们要算的答案:A1 U A2 U A3。要除去重复的部分,这显然就 阅读全文
posted @ 2022-04-03 14:29 qingyanng 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 考虑怎么处理跨根的链: 因为这题是求最值,不用考虑容斥,直接小合并(每次把一个小的子树合到已知的里面)。 当前子树和之前子树的集合合并:之前子树集合维护一个hash[i],到重心距离为i的边数最小值是hash[i]。 处理出当前子树所有点到重心的距离fi和经过的边se,如果fi == k 直接用se 阅读全文
posted @ 2022-04-02 16:52 qingyanng 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 就是给你一棵树,树上每个节点都有一个颜色,在你m次询问每次询问给你一个节点u和一个数字k,问你在u这颗子树里面又少种颜色的结点个数是大于k; 依然是把询问离线到启发式合并的过程中。但是每次询问的k是不确定的,如何统计数量大于等于k的颜色数目? 我们用树状数组维护出现x次的颜色个数。每经过一个节点cn 阅读全文
posted @ 2022-03-30 15:36 qingyanng 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 给一颗树,每次询问以v为根的子树中距v相对深度为p的节点有多少个。 树上倍增算出每个询问的点的祖先,问题就转换成了上述问题 然后就按照DSU on tree的流程。处理轻儿子贡献,处理重儿子贡献,回来计算u的贡献:暴力跑轻儿子加到重儿子计算过的cnt中,统计答案,删除轻儿子贡献。 这里count 算 阅读全文
posted @ 2022-03-29 17:32 qingyanng 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 二分 → 计数 二分横坐标x,统计有多少交点小于等于x 怎么判断有焦点:在 x竖一条直线,如果在无穷远的地方竖另一条直线y,那么两条直线li,lj在y上交点的纵坐标,j > i 但是到了x i > j。这就表明这之间有焦点。 https://www.luogu.com.cn/problem/P282 阅读全文
posted @ 2022-03-28 21:31 qingyanng 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一棵树,点带权,切k刀,使得最大权连通块最小 思路: 二分答案连通块权值x check就是判断能不能花费小于等于k刀把树给分成每个连通块都小于等于x 状态dp[u]表示以u为根的子树切成每一部分都小于等于x的最小刀 贪心:因为要最小刀数 → 先切大儿子,并且这样使得和根相连接的分部最小。 阅读全文
posted @ 2022-03-28 21:06 qingyanng 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 对于第一个版本,l固定为0: 对于每一位,观察1到8的二进制,在0-r的前缀中0的个数一定大于等于1的个数。 所以我们只需要统计每一位中 1,0 的个数,如果 1的个数大于 0,x位就必须为 1.相同情况下1|0都可以,他只是让顺序变了。 对于第一个版本,l>=0: 上面的规律就不适用了。 存在一个 阅读全文
posted @ 2022-03-28 16:19 qingyanng 阅读(22) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页