线段树
Strokess
懂的越少,想的越多。
展开
-
nyoj123 士兵杀敌(四) (线段树)
士兵杀敌(四)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务原创 2016-03-01 21:42:16 · 497 阅读 · 0 评论 -
POJ A Simple Problem with Integers (线段树区间更新区间查询模板)
题目链接:http://poj.org/problem?id=3468题意:N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。#include #include #include #include using namespace std;typedef long long ll;struct nod原创 2016-09-30 20:03:44 · 395 阅读 · 0 评论 -
POJ 2828 Buy Tickets (线段树,插队问题)
题目链接:http://poj.org/problem?id=2828参考博客:http://blog.csdn.net/u013480600/article/details/22091129题意:n个人排队,他们是按顺序到达的,但是他们乱插队。每个人有两个值pos[i]和val[i]。比如现在第5个人来了,他的pos[5]值为3,那么他就会插队到当前第3个人位置的后面(第0个人是原创 2016-09-30 12:24:55 · 445 阅读 · 0 评论 -
HDU 2795 Billboard (线段树,单点查询)
HDU 2795一个h*w的公告牌,要在其上贴公告,尽量往上,同一高度尽量靠左。求第n个广告所在的行数。没有合适的位置贴了则输出-1。参考博客:http://blog.csdn.net/qiqi_skystar/article/details/50299743#include #include #include #include using namespace原创 2016-03-27 19:08:01 · 434 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number (求逆序对数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题意:一个由0..n-1组成的序列,每次可以把队首的元素移到队尾,求形成的n个序列中最小逆序对数目。求逆序对数。方法就是按序列顺序逐个读取元素,每次读取都要查询当前已读取元素中大于当前元素的个数,加到sum里,最后得到的sum即为原始数列的逆序数。这样就是每读一个就原创 2016-09-29 17:56:25 · 447 阅读 · 0 评论 -
hdu 1166 敌兵布阵 (线段树、树状数组模板,单点更新)
hdu 1166单点更新模板题#include #include#include #include using namespace std;const int MAXN = 55555;struct node{ int l, r; int val;};int a[MAXN];node T[MAXN * 4 + 10];void build(int rt, i原创 2016-03-05 19:02:50 · 457 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers (线段树区间更新模板)
POJ 3468老是忘。。#include #include #include #include using namespace std;typedef long long ll;struct node { int l, r, m; ll val, mark; //注意此处标记和值都要定义为long long };const int MAXN = 1001原创 2016-03-25 20:34:58 · 508 阅读 · 0 评论 -
nyoj119 士兵杀敌(三) (线段树,两个value)
士兵杀敌(三)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号原创 2016-02-29 19:26:20 · 836 阅读 · 0 评论 -
nyoj116 士兵杀敌(二)(线段树)
士兵杀敌(二)时间限制:1000 ms | 内存限制:65535 KB难度:5描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。原创 2016-02-29 16:33:20 · 554 阅读 · 0 评论 -
nyoj108 士兵杀敌(一) (线段树)
士兵杀敌(一)描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1随后的一行是N个整数,ai表示第i号士兵杀敌数原创 2016-02-28 20:19:35 · 600 阅读 · 0 评论 -
HDU 1698 Just a Hook (线段树,区间更新)
HDU 1689模板题。#include #include #include #include #include using namespace std;int N, Q;const int MAXN = 100100;struct node { int l, r, m, val, book;};node T[4 * MAXN];void build(int原创 2016-04-06 10:39:25 · 432 阅读 · 0 评论 -
POJ 2528 Mayor's posters (线段树区间更新、离散化)
题目链接:http://poj.org/problem?id=2528题意:题目大意:在墙壁上贴广告,广告的版面有大有小,并且贴广告有先后之分,后面贴的广告会覆盖前面的广告,求解最后能看到的广告面,如下图所示:两种视图,最后从Front View能看见的广告数目是4。#include #include #include #include using na原创 2016-11-27 21:09:30 · 765 阅读 · 0 评论