上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页
摘要: 用tarjan变种求割边的模板题 其实还可以求出所有的边双(用栈),但本题不需要求。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+10; 4 int head[N],nxt[N<<1],to[N<<1],tot 阅读全文
posted @ 2022-06-03 11:41 YHXo 阅读(86) 评论(0) 推荐(0)
摘要: 树状数组加差分的应用。(线段树也可以这么用) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m; 4 long long t[500005]; 5 int lowbit(int x) {return x&(-x);} 6 7 voi 阅读全文
posted @ 2022-06-03 10:14 YHXo 阅读(33) 评论(0) 推荐(0)
摘要: 这道题看起来像是线段树和最大子段和的结合,但这里求最大子段和不用dp,充分利用线段树递归的优势来处理。个人理解:线段树相当于把求整个区间的最大子段和的问题不断划分为很多个小问题,容易解决小问题,然后递归处理较大的问题(分治),所以这就可以用来解决。 在线段树中,除了左端点,右端点,新开4个域——an 阅读全文
posted @ 2022-06-03 09:56 YHXo 阅读(46) 评论(0) 推荐(0)
摘要: 一道用来练习打标记的好题。 对于区间加和区间赋值两个操作分别用两个标记,分析如何打标记并下传标记(还是比较好分析的)。 坑点:查询操作时,我一开始把ans设为-0x3f3f3f3f(调试了好久才发现),这显然是不对的(看题目的数据设置),将其赋值为-1e18就行了。 代码中注释的内容是另一种打标记的 阅读全文
posted @ 2022-06-02 22:00 YHXo 阅读(170) 评论(0) 推荐(0)
摘要: 变了个花样,在l~r区间加上一个等差数列,等差数列的显著特点就是公差d,我们容易想到用线段树维护差分数组,在l位置加上k,在l+1~r位置加上d,最后在r+1位置减去k+(l-r)*d,这样就是在差分数组上操作,利用线段树打标记容易实现。 最后对于每个查询的位置t,查询1~t的区间和就是t位置上的数 阅读全文
posted @ 2022-06-02 20:11 YHXo 阅读(50) 评论(0) 推荐(0)
摘要: 简单的省选题...... 打异或标记即可。 1 #include<bits/stdc++.h> 2 const int N=2e5+10; 3 using namespace std; 4 int n,m,a,b,c; 5 struct node{ 6 int l,r,num,lazy; 7 }t[ 阅读全文
posted @ 2022-05-28 15:07 YHXo 阅读(34) 评论(0) 推荐(0)
摘要: 相比模板1,这道题增加了乘法的操作,不难想到打两种标记,一种加法,一种乘法。 打加法标记tag1时,直接加就行了,tag1+=x; 打乘法标记tag2时,tag2*=x,tag1*=tag2,因为之前加的数也要乘进去。 下传标记也是相同的道理。(注意要时不时mod p) 1 #include<bit 阅读全文
posted @ 2022-05-28 11:57 YHXo 阅读(48) 评论(0) 推荐(0)
摘要: 两个操作,第一个打懒标记处理,第二个直接询问即可,线段树中每个节点存的是区间内所有元素之和。 1 //p3372 2 #include<bits/stdc++.h> 3 typedef long long ll; 4 using namespace std; 5 #define lson k<<1, 阅读全文
posted @ 2022-05-28 11:46 YHXo 阅读(49) 评论(0) 推荐(0)
摘要: 容易想到的是用二叉堆来解决,切断一条蚯蚓,其他的都要加上一个值,不妨用一个表示偏移量的delta。 1.取出最大的x,x+=delta; 2.算出切断后的两个新长度,都减去delta和q; 3.delta+=q; 将其他长度都加上q不好实现,我们就把新的两条减去p,相对大小关系不变,最后还原即可。 阅读全文
posted @ 2022-05-27 22:03 YHXo 阅读(45) 评论(0) 推荐(0)
摘要: 学了哈夫曼树这道题还是好想的,基本上和构造哈夫曼树的思路一样,但是题目要求最长si的最小值,所以用两个关键字的堆,第一关键字是把出现次数作为权值,第二关键字表示从该节点开始的最长长度,权值相同时,选择长度较小的合并。 1 #include<bits/stdc++.h> 2 using namespa 阅读全文
posted @ 2022-05-27 21:52 YHXo 阅读(119) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页