POJ
文章平均质量分 71
xiamiwage
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 2481 Cows 线段树
//POJ 2481 Cows 线段树/*题意:给n条线段(S,E),问每条线段中包含几条线段 线段i包含线段j的定义是Si Ej - Sj思路:将线段转化为点,这样问题就转化为问某点的左上方有多少个点就和POJ 2352 Stars相似了由于问的是左上方,所以点的排序应先按照y从大到小,再按x从小到大排照样按x轴建树,同样要注意这里的x从0开始,要处理下一个要注意的是原创 2012-10-02 23:45:55 · 1634 阅读 · 0 评论 -
POJ 3667 Hotel 线段树 区间合并(成段更新)
//POJ 3667 Hotel 线段树 区间合并(成段更新)/*题目大意:有n间房子,有两种操作: 1 a:询问是不是有连续长度为a的空房间,有的话住进最左边 2 a b:将[a,a+b-1]的房间清空思路:记录区间中最长的空房间 ,线段树操作: update:区间替换 query:询问满足条件的最左端点 ,线段树每个节点记录 3个参数 : lsum :左端开始的空余量原创 2012-09-23 23:51:02 · 866 阅读 · 0 评论 -
POJ 1195 Mobile phones 线段树 二维线段树 单点更新 区间求和
//POJ 1195 Mobile phones 线段树 二维线段树 单点更新 区间求和/*题意:一个矩阵,初始化为0,两种操作:1、将某点增加val2、查询一个子矩阵的和思路:二维线段树,单点更新,区间求和,记得pushup.*/#include#include#include#define N 1050#define lson rt<<1,l,mid#defi原创 2012-10-04 00:23:08 · 955 阅读 · 0 评论 -
POJ 2155 Matrix 二维线段树 奇妙的成段更新 单点查询
//POJ 2155 Matrix 二维线段树 奇妙的成段更新 单点查询/*题意:有一个n*n的矩阵,初始化全部为0。有2中操作;1、给一个子矩阵,将这个子矩阵里面所有的0变成1,1变成02、询问某点的值思路:二维线段树,一维线段树的成段更新需要lazy。引申到二维线段树应该需要一个lazy,一个sublazy,可是这里什么都不用。奇妙之处在于这题的操作是异或,当某一段区间需要原创 2012-10-03 00:27:05 · 1875 阅读 · 0 评论 -
POJ 3067 Japan 线段树 转化
//POJ 3067 Japan 线段树 转化/*题意:有一幅图,左边m个结点,右边n个结点,给出k条边连接左边结点和右边结点 求这些边相互交叉的个数,一个点只会有两条边经过思路:同样将线段转化成点然后放在二维平面图上,对于两条线段[si,ei],[sj,ej]满足交叉的条件是siej || si>sj&&ei<ej两条线段如果同起点或者同终点是不会相交的所以这样就转化为原创 2012-10-02 23:46:10 · 731 阅读 · 0 评论 -
POJ 2352 Stars 线段树 单点更新 成段求和
//POJ 2352 Stars 线段树 单点更新 成段求和/*题意:给一系列点(按y递增,y相同时按x递增排列),level指不超过当前点的高度且不在当前点右边的点的个数 求level值分别为0,1,2,..n-1的个数思路:由于题意已经是按顺序给的点,所以直接按x轴建树 注意x从0开始,线段树从1开始,所以x全部+1处理*/#include#include#inc原创 2012-10-02 23:45:16 · 800 阅读 · 0 评论 -
POJ 2299 && ZOJ 2386 Ultra-QuickSort 线段树
//POJ 2299 && ZOJ 2386 Ultra-QuickSort 线段树/*题意:给一个序列,序列中的数都不重复,每次可以将序列中的两个数交换,求将这个序列变成升序序列的最小交换次数思路:其实就是求这个序列的逆序数,离散化后边查询边插入即可注意ans会爆int*/#include#include#include#define lson rt<<1,l,mi原创 2012-10-02 23:46:28 · 1215 阅读 · 0 评论 -
HDOJ 1079 && POJ 1082 Calendar Game (博弈: 暴力枚举所有状态的P\N)
//1079 Calendar Game 博弈 暴力枚举所有状态的P\N,其实网上有非常简单的做法#include#include#include#include#includeusing namespace std;bool vis[105][15][35];int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};struc原创 2012-09-13 23:11:56 · 1511 阅读 · 0 评论 -
POJ 1704 Georgia and Bob (博弈:Staircase Nim)
//POJ 1704 Georgia and Bob (Staircase Nim)/*题意:有一排的格子从左到右编号为1、2、3...,有n个石子放在上面,每个格子最多只能放一个石子 两个人轮流取石子,每次可以把取的石子往左移。 约束条件:1、不能跨越其他石子 2、不能和其他石子放在同一个格子里面思路:转化为Staircase Nim 相邻两个石原创 2012-09-13 15:50:47 · 563 阅读 · 0 评论 -
POJ 3264 Balanced Lineup 线段树 单点更新 求区间最值
//POJ 3264 Balanced Lineup 线段树 单点更新 求区间最值/*题意:求区间最大值最小值之差*/#include#include#include#define INF 100000000#define N 50005#define lson rt<<1,l,mid#define rson rt<<1|1,mid+1,rint n,m;int原创 2012-10-04 00:23:33 · 881 阅读 · 0 评论 -
POJ 2029 Get Many Persimmon Trees 二维线段树 单点更新 区间求和
//POJ 2029 Get Many Persimmon Trees 二维线段树 单点更新 区间求和/*题意:一个0,1矩阵,在其n*m的子矩阵中找出含有1最多的,输出最多的数量思路:二维线段树*/#include#include#include#define N 105#define lson rt<<1,l,mid#define rson rt<<1|1,mid+1原创 2012-10-03 00:27:40 · 1107 阅读 · 0 评论
分享