线段树
programmy
本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、PS等软件的安装与卸载,精通CSS、JavaScript、PHP、C、C++、C#、java、Ruby、Perl、Lisp、python、Objective-C、ActionScript等单词的拼写,熟悉windows、Linux、Mac、Android、IOS等系统的开关机。欢迎各大公司HR与本人联系。
展开
-
POJ 2528(线段树 区间更新 离散化)
POJ 2528题目大意有一排分成若干组长为1区间的墙,现在要往墙上贴n张海报,一个海报覆盖连续的L到R的区间,按照一定的顺序贴,问最后有多少海报全部或有一部分漏在了表面。(1≤L≤R≤107,n≤10000)(1\le L \le R\le 10^7 ,n\le 10000)分析由于L和R比较大但线段数目不大(最多出现20000种数字),所以需要先对数据进行一下离散化,将L和R映射到一个较小的区间原创 2017-03-08 22:17:18 · 1086 阅读 · 0 评论 -
POJ 2777(线段树 位运算)
POJ 2777题目大意有一个长位L的区间,有T种颜色,进行O次操作,每次操作(1≤n≤100000,1≤T≤30,1≤O≤100000)(1\le n\le 100000,1\le T\le 30,1\le O\le 100000)每次操作有两种形式: P A B C:将区间(A,B)染成颜色C Q A B:询问区间(A,B)有多少种不同的颜色每个点的初始颜色都是1注意:A可能大于原创 2017-03-09 23:13:33 · 1021 阅读 · 0 评论 -
HDU 1754(线段树点修改模板题)
HDU 1754题目大意不断地进行询问某个区间的最大值和修改某个数的操作代码#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<cstdlib>#include<queue>#include<map>#include<algorithm>#include<set>#include<st原创 2017-03-06 22:32:20 · 507 阅读 · 0 评论 -
POJ 3468(线段树区间修改模板题)
poj3468链接题目大意 给出两个操作: 1:将一个区间里的都数增加c 2:查询区间(a,b)内的和代码#include<bits/stdc++.h>using namespace std;#define maxn 100007typedef long long int LL;LL Sum[maxn*4];LL Min[maxn*4];LL Max[maxn*4];原创 2016-11-05 22:49:02 · 1181 阅读 · 0 评论 -
POJ 2828(线段树点修改 思维)
POJ 2828题目大意一个队列,一开始为空,有n个人按顺序去插队,每个人用一对形如(Posi,Vali)(Pos_i,Val_i)的数字表示,意思是第i个人插到PosiPos_i位置的后面,这个人的值是ValiVal_i,问最后插好队后每个人的值一次是多少。分析一开始想到了从后往前考虑,比如最后一个人是一定能确定座位的,再看倒数第二个他的插入位置之和他后面有多少个人会插入到他前面有关(包括他所要插原创 2017-03-16 22:06:55 · 543 阅读 · 0 评论 -
CF 833B(动态规划优化DP)
题目大意 一个长度为n的序列a[i]a[i],让你把它分成k份,将每份中不同的数的个数求和,问这个最大的和是多少. 1≤n≤35000,1≤k≤501\le n\le 35000,1\le k \le 50分析看见这道题我们很容易想到从动态规划的角度思考。 这道题类似于n个乘号,题目中说分成k份,那么我们可以通过k-1份的状态来得到份数是k的时候的状态. 设d[k][i]d[k][i]原创 2017-08-11 15:12:25 · 1224 阅读 · 1 评论 -
CF 817D(线段树 计数 pre数组)
题目大意 给你一个序列,这个序列中任意一个区间的最大值减去最小值得到一个数,让你求所有的区间的这个数加起来的和是多少。分析 这道题可以用线性扫描pre数组的方法差不多O(n)O(n)的复杂度做出来 我做的时候是分治的思想,用线段树来维护,O(nlogn)O(nlogn)的复杂度 找到最大的那个元素,设下标为loc,就将问题分成了三部分: ⎧⎩⎨包含这个最大元素的区间这个最大元素左边的区间原创 2017-09-04 12:47:13 · 460 阅读 · 0 评论