上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 68 下一页
摘要: 连续两道遇到换根dp。 这道题比较复杂一点,遇到题目我们应该关心的是题目的数据,我们发现k的数据很小,很容易想到可以用mod的状态来控制 如果过了一轮就步数+1,因此还需要维护下面的mod的点数 #include<bits/stdc++.h> using namespace std; typedef 阅读全文
posted @ 2020-10-02 22:12 朝暮不思 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 刷了这么久终于遇到水题,十分套路的换根dp,先自底向上维护,之后自顶向下维护一遍 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=4e5+10; int h[N],e[N],ne[N],id 阅读全文
posted @ 2020-10-02 19:17 朝暮不思 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 第一点可以想到的是,对于某个位置i上的数,他能不能被删除只和前面的数的能不能删除掉-(a[i]-i)的数有关。前提是他要a[i]-i小于0 现在的问题是,因为他有很多询问,因为左区间的限定,我们对每个询问需要知道每个i对于当前左区间l-i之间能删除多少个数,这样我们才能知道对于当前区间这个点能不能删 阅读全文
posted @ 2020-10-02 14:53 朝暮不思 阅读(143) 评论(0) 推荐(0) 编辑
摘要: A 签到 #include<bits/stdc++.h> using namespace std; int a[123456]; int main(){ int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); int f=0; int t= 阅读全文
posted @ 2020-10-01 17:04 朝暮不思 阅读(200) 评论(0) 推荐(0) 编辑
摘要: xz=zy 其实对应的就是把x的某一段前缀减下来贴到后面或者把y的某一段前缀贴下来到前面 如果相等则可以,这点可以在纸上模拟。因为y一直在变,所以我们考虑预处理x 对比字符串是否相等,使用哈希即可,本题使用了双哈希避免被卡。 我们关注到,当我们求得最小能够剪切成功的段时,答案并不是只有这个,因为如果 阅读全文
posted @ 2020-10-01 16:58 朝暮不思 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 考虑dp,我们知道答案就是逆序对为0的期望步数。 对于一轮操作,有50%的可能逆序对不变,有50%的可能逆序对-2 对于这个状态方程进行化简就能得到答案 #include<bits/stdc++.h> using namespace std; typedef long long ll; typede 阅读全文
posted @ 2020-10-01 11:16 朝暮不思 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 图中给出了不等式关系并求可行解,考虑使用差分约束来解决。 差分约束的基本套路是: 1.找全不等关系 2.找到一个点可以遍历全图 3.对于可行解问题,跑最短路,一般上我们定义>=关系式 对于本题的关系式,为了控制l<=ai<=r,我们用一个超级点去连 对于fi的限制,有两种情况,前面有和他长度相等的, 阅读全文
posted @ 2020-10-01 09:48 朝暮不思 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 朴素问题是一个算贡献的题目,有很多做法,例如枚举以i为最大值然后二分两边计算每个点的贡献 对于这题,因为遇到了需要去重的问题,已知对于这种去重,就是数组有相等的地方。这样我们可以想到使用后缀数组进行去重 如果采用这种去重的方法,我们算贡献就要换一种方法,我们可以根据后缀数组的形式调整贡献的方法。 因 阅读全文
posted @ 2020-09-30 14:26 朝暮不思 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 经典问题,真难则反后算贡献 我们发现算>难度很大,不妨考虑算=后再用总区间减去非法区间 对于计算区间,可以考虑对于每个点维护以他为最大值的范围。 这可以二分求取,之后在算出来的左右区间内继续二分求或值等于他本身的 然后根据乘法原理计算贡献。注意的是,为了避免重复计算并且为了防止漏算。 我们要特殊关注 阅读全文
posted @ 2020-09-29 09:57 朝暮不思 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 思维题,关注一下有哪些输赢关系 1.dis(a,b)<=da,显然,一步就能抓到 2.直径小于2*da,这是本题解题的核心,我们发现alice站在直径的终点就稳赢 3.如果直径大于2*da,我们证明当2*da>=db的时候alice赢,否则bob赢 首先因为我们不在情况2,所以一定可以找到一个点使得 阅读全文
posted @ 2020-09-28 10:45 朝暮不思 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 68 下一页