自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(14)
  • 收藏
  • 关注

原创 Codeforces 343D Water Tree

题意:一棵树有N个节点,有三种操作(1)“1 v",表示将以点v为根节点的子树全部赋值为1,(2)"2 v",表示将点v以及点v的所有祖先节点全部赋值为0,(3)"3 v",表示查询点v的值。将树型转线性之后,我用了两棵线段树去维护这两种操作,明显可知的是,点v的子树里有一个点进行了操作(2),并且点v进行操作(1)(如果有)的时间早于操作2,那么点v的值就为0,在线段树里维护好每个操作的时间

2013-09-27 16:56:36 3757

原创 ZOJ 3724 Delivery(离线线段树)

题意:N个点,对于每个点i,都有一条连向i+1的有向边,另外有M条其他的有向边,有Q个询问(U,V)求U到V的最短路。当UV的处理方法很相似。分两种情况,分别离线处理一次就可以了。//#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include #include

2013-09-23 23:31:59 3721

原创 ZOJ 3525 Disappearance(扫描线)

题意:有三维的空间里有N个点(N因为N只有5000,起先我们的方法是暴力去枚举两维,即按X排序,找出点彼此间距离不超过LB的点,然后将这些点按Y排序,在线段树中放进Y之间最大距离不超过LW的点。。但是这样死活过不了。。最后枚举一维,直接按X排序,然后就是poj 2482的做法了。。#include #include #include #include #include usi

2013-09-18 22:21:16 3362

原创 hdu 4747 Mex

题意:给你N个数,枚举所有的L和R,问由区间[L,R]之间的数构成的集合里,哪一个数字没有出现,如果有多个,找出最早的一个,设其为x,求所以x的和。如果固定R,设R这个位置的值为Key[R],可以发现整个x数列是递减的,随着R的左移,可以从当前的R到前一个Key[R]出现位置之间的X,都不应该大于R,如果发现了这个性质,就是一个简单的成段更新了。#include #include

2013-09-18 22:11:37 3887 1

原创 ZOJ 3521 Fairy Wars(扫描线)

题意:平面上有N个子弹,每个子弹的坐标已知,现在在距离点x0,y0为R的圆内,所以的子弹都会变成冰块L*L,并且在L*L范围内的所有其他子弹也会变成冰块,问,当连锁反应结束时,变成冰块的子弹数有多少。也就是说落在子弹L/2的范围内的子弹都会结冰,也可以转化成只要边界在子弹L/4范围内的子弹会结冰,这样扫描线就可以搞定了。#include #include #include #in

2013-09-18 22:02:44 3168

原创 Codeforces Beta Round #27 D. Ring Road 2

题意:有一个环,现给你一些区间的起点与终点,区间可以在环内,可以在环外,但是在环内环外的区间都不能彼此相交,问可能否,如果可能,输出方案。2-SAT。#include #include #include #include #include #include #include #include #include using namespace std;typedef

2013-09-17 23:47:17 2787

原创 hdu 4419 Colourful Rectangle(扫描线)

题意:给你10000个三种颜色的矩形,不同颜色的矩形相互覆盖会形成不同的颜色,问形成的七种颜色的面积是多少。扫描线。线段树的每个节点里维护好七种颜色的长度。直接暴力跑一次即可。#include #include #include #include #include #include using namespace std;#define LL(x) (x<<

2013-09-13 10:21:08 3002

原创 Codeforces Beta Round #11 D. A Simple Task

题意:有N(最多19个)个点,M条边,问有多少个简单环。状态压缩,dp[st][i],终点是i,st表示这个环走过哪几个,定义起点为这些走过的点里最小的。#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include #include #include #incl

2013-09-07 01:53:26 2918

原创 hdu 4114 Disney's FastPass

题意:游戏园里有N个区域,有M条边连接这N个区域,有K个要访问的景点。对于每个景点告诉你这个景点所在的区域,要访问这个景点需要等待一定时间,如果没有FastPass,等待时间有Ti,否则等待时间为FTi,接下来的Ni,表示有Ni个区域可以得到这个景点的FastPass,问从区域1出发,再回到区域1所需要的最少时间。状态压缩,dis[i][s1][s2],表示当前走到这个点,s1表示拿到了哪些景

2013-09-06 20:50:42 3447

原创 hdu 4453 Looploop(Splay或者三个双端队列)

题意:有N个数字围成一个圈,有M个操作,操作类型有六种:(1)“add x",从当前指针位置开始的顺时针K2个数加上x。(2)"reverse",翻转,从当前指针指针位置开始的顺时针的K2个数。(3)"insert x",在当前指针位置的顺时候方向插入一个数x。(4)”delete“,删除当前指针所指的数。(5)"move x”,如果x=1,指针逆时针旋转,如果x=2,顺时针旋转。(6)“quer

2013-09-05 01:33:56 3299

原创 Codeforces Beta Round #89 (Div. 2) E. Bertown roads

题意:有N个点,M条无向边,决定每条边的方向,使得图中任何一个点都能到达其他点。起先起着如何去决定每条边的方向,无果,最后发现其实只要dfs一次就可以,挺有意思的一道题。#include #include #include #include #include #include #include #include #include using namespace std;

2013-09-04 10:37:26 2665

原创 hdu 4286 Data Handler(Splay)

题意:给你一串数字,左右指针的位置,有五种操作,左右指针的左移右移,删除左指针右边的数,删除右指针左边的数,翻转两个指针之间的数。Splay搞过去了。。T了几发是因为,删除的时候,可以把要删除的那个点转到根结点,删除根结点,合并两个子树,然后这样就T了,换了个姿势就过了。。C++扩栈不解释。。#pragma comment(linker, "/STACK:102400000,1024000

2013-09-03 00:38:19 2760

原创 hdu 4699 Editor(Splay)

题意:对一个数列进行操作,光标位置后面插入一个权值为x的数,删除光标前的那个数,光标左移一位,光标右移一位,求到k位置的最大的前缀和。Splay在比赛的时候写得太Navie,T了整场。左移和右移的操作就不说了,删除点的操作是,直接把第pos个点旋转成根结点,然后把这个点删除,将左右两个儿子(如果有)合并成一棵新的树。插入的时候,将pos个点旋转成根结点,然后在根和根的右儿子之间插入这个点。

2013-09-02 01:22:33 2923

原创 hdu 4622 Reincarnation(字符串Hash+线段树)

题意:给出一个字符串,最长2000,Q个询问,每次询问[L,R]区间内有多少个不同的字串。可以用后缀自动机做,也可以先把字符串Hash成一个个整数,转化成求一个区间内不同的整数个数。用Trie树Hash超内存了。。#include #include #include #include using namespace std;typedef unsigned int uint;

2013-09-01 19:27:17 3652

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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