上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 68 下一页
摘要: 首先如果一个糖糖被消灭,那么一定是后面的不同组的糖糖的最大值比他要大 因此我们只需要倒着求最大值就行了 问题是发功的解法,发功其实就是给1-ci的数加上1,因此只要先把发功的影响算出来,加到原数组上就可以 因为比如在3处发功,1-3都会+1,所以对相对关系没有影响。只有在3前面的发功才会对3和1的关 阅读全文
posted @ 2020-05-13 15:00 朝暮不思 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 对于两个变量的,可以枚举一个变量,本题刚刚枚举的变量就是答案,对于枚举变量,要用约束加边,如果直接将该位置的dis设为常数,其他的跟她有关的可能就不是一格差分条件。 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; in 阅读全文
posted @ 2020-05-13 10:08 朝暮不思 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 对于第二问和第三问,只需要把1作为绝对值0点,即可在物理意义上解决,差分约束的关键是找到所有关系,一般而言,如果题目没给,可以考虑超级原点。 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; const int inf= 阅读全文
posted @ 2020-05-11 23:12 朝暮不思 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 对于覆盖的一次的,我们维护一格变量,对于覆盖两次的,我们维护两个变量,分别是s1,s2,覆盖一次以上和覆盖两次以上。 通过这样的操作就可以直接根据儿子信息更新而不用维护一格pushdown操作 #include<iostream> #include<cstdio> #include<cstring> 阅读全文
posted @ 2020-05-11 20:55 朝暮不思 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 转化成不等式后转化为最长路问题,另外多连0到他们的边后求一下最长路并判断是否有正环 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10,M=3e5+10; int h[N],e[M 阅读全文
posted @ 2020-05-11 11:21 朝暮不思 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这题只需要考虑奇偶性即可,答案就是到子节点偶数和*到本节点奇数以及子节点奇数和本节点偶数,之后更新数量 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=3e5+10; const int m 阅读全文
posted @ 2020-05-10 20:49 朝暮不思 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 非常巧妙的转换。首先我们可以观察性质,一条边不可能出现两次,因为显然可以被更好的方案替代 之后,每个边就存在选或者不选两种情况 如果以子树的节点为偶数,那么就不需要,否则需要,做一下dfs即可 #include<bits/stdc++.h> using namespace std; typedef 阅读全文
posted @ 2020-05-10 16:53 朝暮不思 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 这题的思路很精妙,因为我们发现每个点有两种选择,一种是涂新的颜色,一种是涂原来出现的颜色 如果按树形dp的方法做,很难做,因为无法判断点之间的路径以及存在的颜色关系。因此想到使用dfs序的方式,转化成链式 这样该节点涂色之前父亲节点也被涂色。而新颜色可以随便选,原来的颜色必须和父亲节点的颜色一样 # 阅读全文
posted @ 2020-05-10 15:41 朝暮不思 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 这题暴力思路是一直往上跳,然后计算,但是我们发现,如果知道了父节点的所有信息,那么我们只需要比一下父节点的信息和自己,就知道自己能怎么跳 问题就是如何快速求信息,因此想到从根节点往下求,用倍增算法。我们是设f[i][j]为i能够交易2的j次的点在哪,所以只要知道f[i][0]就可以通过倍增思想求出所 阅读全文
posted @ 2020-05-10 14:36 朝暮不思 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 简单lca问题,只需要求一下三个点的lca判断一下距离即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+10; int h[N],ne[N],e[N],idx; int n,q; 阅读全文
posted @ 2020-05-09 19:56 朝暮不思 阅读(127) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 68 下一页