UVa 11683 - Laser Sculpture

题目:利用激光切割机切削一个矩形的材料,每次只能从上向下切掉1mm后的矩形,             问切削成如下给出的形状需要切削多少次。 分析:线段树,数据结构。将图形看成是二叉树,从上往下按最高的点分段即可。             整个切削过程遇到极大值点就会分成两段,就是一个构造二...

2017-07-24 16:38:44

阅读数:131

评论数:0

UVa 12532 - Interval Product

題目:已知N各數字X1~Xn,執行兩種操作:1、改變Xi為A;2、求區間[L,R]上元素乘積的符號。 分析:DS,線段樹。利用線段樹處理即可,每個數字正的取1,負的取-1,否則取0。 說明:╮(╯▽╰)╭。 #include #include #include int data[10...

2016-08-03 14:23:48

阅读数:223

评论数:0

UVa 12086 - Potentiometers

題目:已知一個序列,有兩種操作S x y:將第x各元素替換成y,M x y:求第x倒第y各元素的和。 分析:數據結構,樹狀數組。區間操作直接用樹狀數組或線段樹。 說明:╮(╯▽╰)╭。 #include #include int data[200002]; int C[200002];...

2016-01-19 15:38:26

阅读数:709

评论数:0

UVa 1428 - Ping pong

题目:从一串数字中选出三个有序的三元组,问有多少种取法。 分析:数据结构,树状数组。利用树状数组求每个数字两侧大和小的数字的个数为线性。             ①按照插入顺序求解data[i]左边比它小的数字记为Lsmall[i];             ②则data[i]左边比他大的数...

2015-11-03 10:10:56

阅读数:495

评论数:0

UVa 297 - Quadtrees

题目:利用四叉树处理图片,给你两张黑白图片的四叉树,问两张图片叠加后黑色的面积。 分析:搜索、数据结构。把图片分成1024块1*1的小正方形,建立一位数组记录对应小正方形的颜色。             利用递归根据字符串,建立相应四叉树。在建树的过程中,树节点计算当前节点对应的小正方形  ...

2013-10-15 01:44:28

阅读数:2846

评论数:0

nyist 600 - 花儿朵朵

题目:给定很多花的开花时间段,询问某一时间点有多少朵花儿开放。 分析:线段树、离散化。利通每朵花的开花时间段的端点值将时间轴分割成区间段,则操作以每个区间段为整体进行。分割又两种方案:1.端点各成一段,端点间各成一段;2.建立左闭右开的区间,每个区间从上一个顶点开始、到下一个顶点之前结束(开区间...

2012-11-18 12:01:26

阅读数:770

评论数:0

UVa 11402 - Ahoy, Pirates!

题目:给定一个01串,对串的某些区间进行:变0、变1、取反和查询操作。 分析:线段树、离散化。经典的线段染色的变形。区间大小1000000,查询操作1000,如果直接建立1000000的区间的线段树,在上面操作会TLE。因为查询只有1000个,那么利用查询的端点将区间划分成最多4001段(每个端...

2012-11-18 02:05:31

阅读数:1673

评论数:0

UVa 11297 - Census

题目:给定一个矩形的数组,在不断更新的过程中查询最值。 分析:线段树。利用矩形的左上和右下2个顶点代表对应的矩形,建立矩形树。把每个矩形分成四个小矩形。设x3=(x1+x2)/2;y3=(y1+y2)/2,则矩形{(x1,y1),(x2,y2)}的四个孩子分别为{(x1,y1),(x3,y3)}...

2012-11-15 23:12:57

阅读数:1256

评论数:0

UVa 11235 - Frequent values

题目:查询某非递减序列,某些区间中的众数出现的个数。 分析:线段树、离散化。把相同的数字看成一个节点,建立不等分区间树。区间树的节点储存:区间的端点和此区间中的众数的个数。 注意:离散化后并不经过映射建立等分线段树,而是利用原序列中的重复元素的端点建立区间树。 #include #in...

2012-11-15 02:01:20

阅读数:1274

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭