思维
文章平均质量分 65
学不会dp QAQ
这个作者很懒,什么都没留下…
展开
-
洛谷P3714 [BJOI2017]树的难题 【点分治,线段树合并】
题目链接题意给出一棵树,每条边有一种颜色,每种颜色都有相应的权值。一条路径的权值为:连续相同的颜色视为一段,权值为所有颜色段对应的权值和,比如路径颜色为:1 1 1 2 3 1 1 4 4,那么颜色段为:1 2 3 1 4。求长度在[L,R][L, R][L,R]范围内的路径的最大权值题解看到树上路径问题显然想到点分治,但是求出子树的各路径权值后,不能直接选最大的相加,假如两条子树路径的初始颜色一样那就得减去一次初始颜色权值。所以得开两颗线段树(线段树用来维护路径长度在[x,y][x,y][x,y原创 2021-11-09 12:53:43 · 380 阅读 · 0 评论 -
HDU 6166 Senior Pan 【二进制分组,最短路】
题目链接题意给出一张有向图,求其中 KKK 个点之间的最短路显然求 KKK 次最短路会超时,可以换个角度思考。把KKK个点分成两个集合,同一集合内的点互相距离为0,最短路也就是这两个点集之间的最短路(最短路的两个端点不在同一个集合内)。现在只需要考虑这个集合需要分多少次。从二进制的角度看,把集合KKK 中第 iii 位为 0 和为 1 的分为两个集合,这样对于无论最短路端点是哪两个,从第1位拆到第log(n)+1log(n)+1log(n)+1位,一定有一次会把他们拆到不同的集合。每次对于两个集原创 2021-11-06 01:34:12 · 189 阅读 · 0 评论 -
Codeforces Round #649 D. Ehab‘s Last Corollary 【思维,二分图,环】
题目链接题意给出一个无向图,要找出数量大于 ⌈K2⌉\lceil \frac{K}{2} \rceil⌈2K⌉ 的点独立集长度不大于 KKK 的环保证有一种解题解如果 m=n−1m=n-1m=n−1(即为一棵树),那就之间二分图染色,两个独立集一定有一个大小 ≥⌈K2⌉\ge \lceil \frac{K}{2} \rceil≥⌈2K⌉否则图中一定有环,如果(环指的是简单环)环大小小于等于K:直接输出环就好了环大小大于K:那环里面隔一个输出一个,至少有⌈K2⌉\lceil原创 2021-11-02 21:09:33 · 128 阅读 · 0 评论 -
Codeforces Round #612 B. Numbers on Tree【思维】
题目链接题意给出一棵以 1 为根的树,每个结点有个两个权值 pi,aip_i,a_ipi,ai ,其中 pip_ipi表示它的子树中 aia_iai 比它小的结点数量,现在给出 pip_ipi,求一种满足的aia_iai,不存在则输出NO题解不满足的情况为 pip_ipi 大于其子树结点数对于满足的情况,一定存在一种 1~n 的排列符合,对于 pip_ipi ,aia_iai就是 1~n 里剩余的第 pi+1p_i+1pi+1 个数,每次用完一个数就把它删了。暴力找是 n2n原创 2021-10-27 01:28:11 · 135 阅读 · 0 评论 -
Codeforces Round #469 D. A Leapfrog in the Array【思维】
题目链接题意一个序列初始为 1_2_3_..._n−1_n1\_2\_3\_...\_n-1\_n1_2_3_..._n−1_n(_为空),每次操作会把最后一个数往左移到第一个空,操作持续到无法移动为止(即1~n把前面全占满,没有空了), qqq 次询问位置 PPP 的值 (1≤P≤n1\le P \le n1≤P≤n)操作如下图所示题解感性的理解一下,操作到最后,1~n 奇数位上的数是没有移动过的,因为处理到 n2\cfrac{n}{2}2n 时,序列长这样:1_2_3_.._n2abcd原创 2021-10-27 01:07:05 · 119 阅读 · 0 评论 -
Codeforces Round #606 E. Two Fairs 【思维】
题目链接题意给出一个 nnn 个顶点 mmm 条边的无向图和两个顶点 a、ba、ba、b,问有多少对顶点(u,v)(u, v)(u,v) 使 uuu 到 vvv 必须经过 a,ba,ba,b 两点(u、vu、vu、v != a、ba、ba、b,uuu != vvv)题解可以这样想,uuu 到 vvv 必须经过 a,ba,ba,b,也就是把 a,ba,ba,b 删了的话,这两个点就无法到达,所以我们可以对 a、ba、ba、b 分别讨论由 aaa 为起点 dfs,每个点都能到达,cnt1=ncnt1原创 2021-10-27 00:47:02 · 99 阅读 · 0 评论 -
Codeforces Round #276 (Div. 1) E. Sign on Fence【主席树区间合并 + 二分】
题目链接#include<iostream>#include<sstream>#include<string>#include<queue>#include<map>#include<unordered_map>#include<set>#include<vector>#include<stack>#include <utility>#include<list&原创 2021-10-23 01:49:57 · 93 阅读 · 0 评论 -
Codeforces Round #276 (Div. 1) B. Maximum Value【数学、思维】
题目链接题意给出序列 a[1...n]a[1...n]a[1...n],求最大的 a[i]%a[j]a[i]\%a[j]a[i]%a[j](a[i]>a[j]a[i]>a[j]a[i]>a[j])题解先标记一下 a[1...n]a[1...n]a[1...n] 的存在,对于 a[i]a[i]a[i] 来说,找到 max(a[i]%a[j])max(a[i]\%a[j])max(a[i]%a[j]) 的方法就是枚举其倍数(枚举倍数的时间是log(m)log(m)log(m)),在 (原创 2021-10-23 01:04:05 · 106 阅读 · 0 评论 -
Educational Codeforces Round 52 C. Make It Equal 【贪心、思维】
题目链接题意从 111 ~ NNN 每个位置有不同的方块数,每次可以选择一个高度,切掉这个高度以上的方块,每次被切去的方块数不能大于 KKK,最少切几次能使 111 ~ NNN等高题解排个序从最高的开始切,每次尽可能的切最多的#include<iostream>#include<sstream>#include<string>#include<queue>#include<map>#include<unordered_m原创 2021-10-13 13:30:11 · 113 阅读 · 0 评论