数据结构—线段树
My_ACM_Dream
生活没有彩排每天都是现场直播
展开
-
hdu 2795 Billboard (线段树,单点更新)
题意:给出一个h*w的版面,现在要将每个海报(1*wi)贴到这上面,每次要选择最左边能够贴的地方!题解:其实n个点最多能用的高度就是n,那么可以根据搞当区间进行线段树,好吧我还是太水了。#include#include#include#include#include#include#include#include#include#define B(x) (1<<(原创 2015-05-08 21:06:36 · 458 阅读 · 0 评论 -
hdu 1754 I Hate It (单点更新,区间查询)
题意:给出n个学生的分数,每次可以选择两个操作,1是选择将区间某个点学生的分数更新,2是询问区间学生的最大值。题解:入门题,直接搞。#include#include#include#include#include#include#include#include#include#define B(x) (1<<(x))using namespace std;ty原创 2015-05-08 17:51:19 · 483 阅读 · 0 评论 -
hdu 4046 Panda (线段树,单点更新,区间求和)
题意:两个操作,改变区间某个位置的值,询问区间好友wbw串的个数。题解:将线段树的每个点的值设为以这个点为结尾的串是否是wbw。接下来就是裸的线段树。注意一个位置改变会影响三个位置,所以要更新三个位置的点。区间更新是要这样做query(a+2,b,1)因为如果不这样会重复计算。#include#include#include#include#include#include原创 2015-05-10 23:27:07 · 641 阅读 · 0 评论 -
hihoCoder 1169 猜数字 (线段树,离线处理)
题意:每次询问求出区间最接近k的数对应的差。题解:离线操作,两次排序,计算两次,第一次将询问和数字根据k从小到大排序,碰到询问只要查询区间的最大值跟定是最靠近k的,相反第二次是从大到小排序,求最小值是最靠近k的,两次计算的值取最小值即可。#include#include#include#include#include#include#include#include#原创 2015-05-14 17:43:41 · 700 阅读 · 0 评论 -
hdu 1556 Color the ball (区间跟新,单点查询)
题意:n个操作,每次讲一个区间染色一次,问最后全部点被染色了多少次。题解:区间跟新完没必要一个点一个点的查询,直接在查询中输出对应值。#include#include#include#include#include#include#include#include#include#define B(x) (1<<(x))using namespace std;t原创 2015-05-08 12:38:12 · 522 阅读 · 0 评论