上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 22 下一页
摘要: 题意找到区间里有多少组连续数字串分析:(转)思路:显然,我们要使得value最大,就要尽量将连续的ID分在一组,所以问题转化为求一个区间中连续ID区间的个数。我们从左往右扫描,依次考虑右端点为i的询问,设dp[l]为区间[l,i]的连续区间个数,po[i]为i出现的位置,若还未出现,则为0,设我们当前考虑的右端点为a[i],首先我们假设a[i]不能和区间[1,i-1]中的任何一个数分到一组,则我们要将dp[1]到dp[i-1]全部加1,然后考虑po[a[i]+1]是否不为0,若不为0则说明a[i]-1已经在前面出现,则我们需要将dp[1]到dp[po[a[i]+1]]全部减一个1,因为a[i] 阅读全文
posted @ 2013-08-02 16:28 z.arbitrary 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 很好的一道题,感觉很巧妙题意:求一段区间里,不相同数的和分析:离线查询,详细见代码;// File Name: 3333.cpp// Author: Zlbing// Created Time: 2013/7/22 21:08:44#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define CL(x,v); memset(x,v,sizeof(x));#define INF 0x3f3f3f3f#define 阅读全文
posted @ 2013-07-22 22:41 z.arbitrary 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意:求矩形覆盖K次以上的面积分析:k很小,可以开K颗线段树,用sum[rt][i]来保存覆盖i次的区间和,K次以上全算K次// File Name: 11983.cpp// Author: Zlbing// Created Time: 2013/7/21 16:06:54#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define CL(x,v); memset(x,v,sizeof(x));#define 阅读全文
posted @ 2013-07-21 17:22 z.arbitrary 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 题解引自:http://www.cnblogs.com/wuyiqi/archive/2012/04/28/2474614.html这题和着题解一块看,看了半天才看懂的....菜菜....题意:有一排的枪编号依次为1~n 有一排靶子编号依次为1~m告诉你哪些枪能打中哪些靶子,然后如果每次只能选连续的P把枪,连续的Q个靶子,每次能打中的靶子的最大值为多少答案是把每次打中的最大值相加再除以总的次数即选择 1~P 的枪能打中的最多的靶子的数量 + 2~p+1 的枪能打中的最多的靶子的数量 +。。。n-p+1~n的枪能打中的最多的靶子的数量 /(n-p+1)注意,每把枪最多只能打一个靶子解法:将题目中 阅读全文
posted @ 2013-07-21 15:25 z.arbitrary 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 题解:http://www.notonlysuccess.com/index.php/segment-tree-complete/题意:求矩形周长分析:与面积不同的地方是还要记录竖的边有几个(numseg记录)也就是[记录线段树被覆盖的区间有多少个],并且当边界重合的时候需要合并(用lbd和rbd表示边界来辅助)线段树操作:update:区间增减 query:直接取根节点的值// File Name: 1177.cpp// Author: Zlbing// Created Time: 2013/7/20 19:53:20#include#include#include#include#incl 阅读全文
posted @ 2013-07-20 20:56 z.arbitrary 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 题意:求矩形面积并分析:使用线段树+扫描线...因为坐标是浮点数的,因此还需要离散化!把矩形分成两条边,上边和下边,对横轴建树,然后从下到上扫描上去,用col表示该区间有多少个下边,sum代表该区间内被覆盖的线段的长度总和这里线段树的一个结点并非是线段的一个端点,而是该端点和下一个端点间的线段,所以题目中r+1,r-1的地方可以自己好好的琢磨一下详细分析下扫描线第一次完全看懂扫描线.像这题的样例:这么两个矩形,现在要求它的面积并.假设我门将横边座位扫描线,即每个矩形有两条扫描线,下扫描线,下扫描线,每条扫描线我们用结构体const int MAXN=250;struct seg{ dou... 阅读全文
posted @ 2013-07-20 17:06 z.arbitrary 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 题解引自:http://www.cnblogs.com/wuyiqi/archive/2012/05/27/2520642.html题意:有n个数,刚开始都为0add i , j 给i,j区间内的数都加1Q i j 询问i、j间能被三整除的数的个数分析:线段树记录三个域对三取余为0的数的个数。。。。。1.。。。。。。。。。。2.。。。。。可以保存在一个数组里面考虑到每次给一个区间加1的时候,区间内对3取余为1的数的个数变成了对三取余为2,2的变成了0,0的变成了1所以每次更新到区间或者把信息(懒惰标记)往下传的时候只需要把相应的域做一下调整即可// File Name: 1135.cpp//. 阅读全文
posted @ 2013-07-18 22:17 z.arbitrary 阅读(238) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/85/D题意:给你N(0#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define CL(x,v); memset(x,v,sizeof(x));#define INF 0x3f3f3f3f#define LL long long#define REP(i,r,n) for(int i=r;i=r;i--)#define lson l,m,rt 阅读全文
posted @ 2013-07-18 21:16 z.arbitrary 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 题意:一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝给给定的C个女神拍照,每天拍照数不能超过D张,而且给每个女神i拍照有数量限制[Li,Ri],对于每个女神n天的拍照总和不能少于Gi,如果有解求屌丝最多能拍多少张照,并求每天给对应女神拍多少张照;否则输出-1。分析:增设一源点st,汇点sd,st到第i天连一条上界为Di下界为0的边,每个女神到汇点连一条下界为Gi上界为oo的边,对于每一天,当天到第i个女孩连一条[Li,Ri]的边。建图模型:源点s,终点d。超级源点ss,超级终点dd。首先判断是否存在满足所有边上下界的可行流,方法可以转化成无源汇有上下界的可行流问题。怎么转换呢?增设一条从d到 阅读全文
posted @ 2013-06-30 22:14 z.arbitrary 阅读(1848) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个图,有N个点,M条边,这M条边有的是单向的,有的是双向的.问你能否找出一条欧拉回路,使得每条边都只经过一次!分析:下面转自别人的题解:把该图的无向边随便定向,然后计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。 好了,现在每个点入度和出度之差均为偶数。那么将这个偶数除以2,得x。也就是说,对于每一个点,只要将x条边改变方向(入>出就是变入,出>入就是变出),就能保证出 = 入。如果每个点都是出 = 入,那么很明显,该图就存在欧拉回路。 现在的问题就变成了 阅读全文
posted @ 2013-06-20 21:07 z.arbitrary 阅读(471) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 22 下一页