线段树
文章平均质量分 63
verdin黄大锤
afo啦!
展开
-
cf1609E. William The Oblivious
William The Oblivious题意:给一个仅含abc的字符串,每次操作可以修改某一位的字符。每次操作后,要求输出最少删除多少个数可以使字符串中不含有子序列abc。建立一个线段树,a[],b[],c[],ab[],bc[],abc[]a[],b[],c[],ab[],bc[],abc[]a[],b[],c[],ab[],bc[],abc[]代表使得区间中没有子序列a,b,c,ab,bc,abc最少删除的字符数。a[o]=a[lson]+a[rson];b[o]=b[lson]+b[原创 2021-12-08 20:23:49 · 297 阅读 · 0 评论 -
洛谷 P1712 [NOI2016]区间
题目:[NOI2016]区间思路:将区间离散化,并按照长度从小到大排序。考虑将区间按顺序加入,如果当加入区间 [L,R] 时,存在一个点使被覆盖次数==M,那么,可以用这条线段的长度减去覆盖这个点的第一条线段的长度更新答案,并弹出第一条线段。用线段树维护这个过程即可。代码:#include<bits/stdc++.h>using namespace std;#defi...原创 2019-05-13 16:33:22 · 238 阅读 · 0 评论 -
探险
题目:题目描述小林和亮亮来到森林中探险, 森林中有一条长度为 S 的小路 (编号从 1 到 S) , 且在小路上时常会起雾,亮亮也可以用神光让雾消散。 小林则关心在某一位置的视野。若位置 x 有浓雾,则位置 x 的视野为 0。若 从 x 一直到 S 或从 x 一直到 1 全都没有浓雾,则视野为INF。其他情况下,位置x的视野为maxR−L+1maxR−L+1 要满足这个区间内没有浓雾的产生. ...原创 2019-03-14 20:37:05 · 383 阅读 · 0 评论 -
方格纸与直线
题目:题目描述小林有一张 n 行 m 列的方格纸,如下所示。Luogu该方格纸黑白相间,且第一行第一列为黑色。顽皮的亮亮在方格纸上画了一 条连接左上角和右下角的线段。小林看到方格纸后,马上算出了位于黑色区域的 线段的长度之和占整条线段长度的比值。现在,他想考考你会不会算。输入输出格式输入格式:一行两个整数 n 和 m。输出格式:输出一个分数,即题目中所求的比值,用两个由’...原创 2019-03-14 20:31:30 · 1043 阅读 · 0 评论 -
CF833B The Bakery
题目:The Bakerykevin_yu的题解之前没有好好听@kevin_yu讲题,做了一晚上……这篇题解主要是对kevin_yu的补充以及代码注释的扩充。思路:part 1.dp一个很容易想到的O(n2k)O(n^2k)O(n2k)算法——令f[i][j]f[i][j]f[i][j]表示前i的位置划分j次的价值。转移方程:f[i][j]=max (f[k][j−1...原创 2018-12-11 23:52:26 · 335 阅读 · 0 评论 -
洛谷 P2574 XOR的艺术
题目:XOR的艺术思路:线段树。注意:1、所有和线段树相关的数组开十倍。2、push_down之后lazy标记要清空。代码:#include<bits/stdc++.h>using namespace std;#define maxn 200000#define read(x) scanf("%d",&x)#define lch (o*2)#defi...原创 2018-10-26 19:12:29 · 166 阅读 · 0 评论 -
三部曲
题目描述因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市i被加派了k名士兵时,城市i的所有子城市需要被加派k+1名士兵,这些子城市的所有子城市需要被加派k+2名士兵。以此类推。当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以城市i为根的子树中的所有城市共被加派了多少士兵。你现在是国王的军事大臣,你能回答出国王的每个询问么?输入输出...原创 2018-09-11 15:07:12 · 370 阅读 · 0 评论 -
poj 3071 Football
题目:Football思路: 就是用一个类似于线段树的树形结构维护下。 大概我是唯一一个不会推公式的,肯定是数据结构学傻了。代码:#include&amp;lt;iostream&amp;gt;#include&amp;lt;cstdio&amp;gt;using namespace std;#define db double#define maxn 7#define maxm (1&amp;lt原创 2018-08-19 16:13:26 · 226 阅读 · 0 评论 -
HDU4027 Can you answer these queries?
题目:Can you answer these queries?思路: 建立一颗线段树,维护区间和,那么查询操作就变成了裸的线段树区间查询。 对于开根号的操作,像维护区间修改那样做似乎是不方便的。 嗯我们经过一番操作可以知道从inf开始开根号到1只要进行少于10次操作,也就是说将区间内每一个值经过一番操作调整到1只需要花O(nk)的时间,其中k是一个不大的常数。 那么我们可以在修改时暴...原创 2018-08-07 23:06:10 · 162 阅读 · 0 评论 -
HDU 1166 敌兵布阵
题目:敌兵布阵思路: 线段树裸题~ 区间减可以看做区间加一个相反数。代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define maxn 50000int n,m;int a[maxn*10+5];int c[maxn+5];int P,Q;void Add(int o,int L,int R,int ...原创 2018-08-07 20:17:39 · 131 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers
题目:A Simple Problem with Integers思路: 线段树区间修改区间查询裸题。 emm通过这题我深刻的感受到了string的效率…用string读字串就T了,改成char就过了Orz代码:#include<cstdio>#include<iostream>#include<string>using namespace...原创 2018-08-07 18:29:11 · 103 阅读 · 0 评论 -
51Nod 1174 区间中最大的数
题目:区间中最大的数思路:静态区间最大值,写的线段树。代码:#include<bits/stdc++.h>using namespace std;#define maxn 10000struct Node { int x;};int n,m;Node a[maxn*4+5];int c[maxn+5];int P,Q;int Query...原创 2018-08-07 18:26:48 · 143 阅读 · 0 评论 -
洛谷 P3368 【模板】树状数组 2
题目:树状数组 2思路:线段树模板题代码:#include<bits/stdc++.h>using namespace std;#define maxn 500000#define ll long longstruct Node{ ll x,lzy;};ll n,m;ll c[maxn+5];Node a[maxn*10+5];ll P...原创 2018-08-07 13:43:15 · 231 阅读 · 0 评论