上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: 题目链接 link. 题解 闲话 神仙题当然要神仙来做,拜谢 @Rabbit_Mua 神仙的三句话题解!!!包讲懂的那种!!1 首先有一个结论,每一次加边肯定是从 1 1 1 连向其他节点。 这个很好证明,因为我们连边的目的是为了让 d ( v ) d(v) d(v) 变小,如果在 u u u 向 阅读全文
posted @ 2022-07-14 21:28 To_Heart 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Link. 题解 因为是 1 1 1 到 n n n 在树上的最短路,所以一定是 1 1 1 到 n n n 这条链,我们先把链拉出来,那么链上的每一个节点可以看做挂上了剩余的不在链上的节点。 如果链上的一个节点挂着的节点超过或等于两个,那么我们可以选择在这两个之间连边,所以无论询问所给的 阅读全文
posted @ 2022-07-14 16:58 To_Heart 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Link. 题解 神仙题啊神仙题。 首先,这道题目的操作是反转,而反转两次就等价于没反转。所以从初始状态转换到目标状态等价于从目标状态转换到初始状态。 为了方便,这里把 ‘W’ 看成 0 0 0,把 ‘B’ 看成 1 1 1,每次反转就是将矩形 A A A 的每一个数异或 1 1 1。所求 阅读全文
posted @ 2022-06-28 09:44 To_Heart 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目链接 link. 题解 可以发现,如果每一条边的编号位数相同就会很好处理,又可以发现走过一条编号为 1 的边和一条编号为 2 的边的贡献与走过一条编号为 12 的边相等,所以我们考虑拆边,将边按照十进制进行拆分。因为每条边只有一位了,所以最短的距离肯定走最少的边,所以我们把问题转换成了最短路问题 阅读全文
posted @ 2022-06-25 18:45 To_Heart 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目链接 link. 题解 对于传统的Nim游戏来说,n堆石子数取异或值为0,则为必败态,反之为必胜态,所以第一次操作需要让剩余的石子的每一个子集的异或和都为1,这样无论对手拿什么我剩下的都是必胜局。考虑拟阵。 那么一个集合是独立的就是它的所有子集的异或和都是1, 然后用所有的全职减去最优解就好了。 阅读全文
posted @ 2022-06-23 16:24 To_Heart 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Link. 题解 闲话 正解应该是SA,把数组差分一下,然后把它们合成一个数组,跑一遍后缀数组以后二分长度判断答案。但是好像忘了SA怎么打,所以用 hash 写了个复杂度高一个 log 的做法 题解 首先还是差分,那么问题就转换成了求 k 个串的最长公共子串长度,因为是差分,所以长度+1就 阅读全文
posted @ 2022-03-16 15:51 To_Heart 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Link. 题解 对于每一个数,我们先考虑它可以和哪些数异或。 设当前这个数为 i i i,如果我们能够找到左边的第二个 l l l 使得 a i < a l a_i<a_l ai​<al​,那么 i i i 就是区间 [ l + 1 , i ] \left[ l+1,i \right] 阅读全文
posted @ 2022-03-01 16:56 To_Heart 阅读(3) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; int n,m; struct zz{ int l,r; }; int fa[20000005]; int dep[20000005]; int root[2000005]; struct HJT_Tree{ 阅读全文
posted @ 2022-03-01 16:28 To_Heart 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目描述 Link. 题解 我们设 L a s t i Last_i Lasti​ 表示右边离 i 最近且两者颜色相同的数的下标。 那么我们要求的就是: ∑ i = l r [ L a s t i > r ] \sum_{i=l}^r [Last_i>r] i=l∑r​[Lasti​>r] 如果不加 阅读全文
posted @ 2022-02-23 14:43 To_Heart 阅读(2) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; int n,m; int a[2000005]; int ans[2000005]; char s[5]; struct zz{ int op,l,r,k,id;} q[2000005],q1[2000005] 阅读全文
posted @ 2022-02-16 21:30 To_Heart 阅读(2) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页