
线段树
IZUMIXINGI
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #757 (Div. 2) E. Divan and a Cottage
首先可以观察到一个性质:对与两个不同的起始温度t1和t2(t1 < t2),不管怎么变化温度,最终变化得到的温度T1和T2有T1 <= T2,容易想到维护一个关于起始温度的线段树,进行区间更新和单点查询。考虑到起始温度范围较大,故使用动态开点的方式进行处理:#include<bits/stdc++.h>#pragma comment(linker, "/stack:200000000")#pragma GCC optimize("Ofast")#pragma GCC targ原创 2021-11-29 19:44:30 · 438 阅读 · 1 评论 -
cf round 751 D.Frog Traveller(bfs剪枝和线段树优化建图做法)
#include<bits/stdc++.h>#pragma comment(linker, "/stack:200000000")#pragma GCC optimize("Ofast")#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")#define debug(x) cout<<#x<<" is "<<x<<endl#define原创 2021-10-27 16:44:21 · 157 阅读 · 0 评论 -
[线段树优化建图|dijkstra]Codeforces Round #406 (Div. 2) D. Legacy
总体思想是,使用线段树思想,用点和区间进行连边,只有当一个区间已经是最小值时才更新该区间内所有的点;具体思路参照这里:洛谷代码实现:#include<bits/stdc++.h>#pragma comment(linker, "/stack:200000000")#pragma GCC optimize("Ofast")#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")#defin原创 2021-10-27 11:15:22 · 126 阅读 · 0 评论 -
[2021-9-23]补题记录
Educational Codeforces Round 54 (Rated for Div. 2)E. Vasya and a Tree题目大意:给定一棵以1为根节点的树,每个节点值为0,给定若干修改,x,d,v,为x节点及其dist(x,y)<=d的子节点y,值加上v,最后输出各节点的值;解法:离线修改,使用树状数组在树上对深度进行差分,记得回溯时修改回来,避免这条子路径对另一条子路径产生影响。#include<bits/stdc++.h>#define pb push_bac原创 2021-09-23 16:23:47 · 121 阅读 · 0 评论 -
[zoj 1610线段树]F - Count the Colors
color[l,r]表示区间[l,r]被成何种颜色, 不停更新区间颜色,最后查询每个点的颜色,如果该点颜色!=-1也不与前驱相同,则对应颜色结果加1#include<bits/stdc++.h>using namespace std;#define lc(x) (x<<1)#define rc(x) ((x<<1)|1)const int N = 8000 + 5;int color[N<<2];void down(int rt){ if(co原创 2020-09-23 11:57:44 · 151 阅读 · 0 评论 -
[POJ 2528 线段树|离散化]D - Mayor‘s posters
题意:不停的用海报覆盖不同的区间n次,问最后可见(部分或整体)的海报张数解法:后张贴海报有高优先级,在张贴时只需要判断张贴区间[l,r]是否被完全覆盖,如果没有被完全覆盖,则计数++,并将[l,r]设置为完全覆盖注:离散化可以用lower_bound,也可以借助map,在这题使用map会超时#include<iostream>#include<vector> #include<map>#include<algorithm>using name原创 2020-09-22 10:24:55 · 122 阅读 · 0 评论