自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

No__stop

No one could stop you, as surely want it .

  • 博客(129)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android学习笔记

本文只做学习记录,不做教程,所以没一点都只是简单的记录。有疑问或建议可留言讨论一、预备知识Android的四层体系结构啥的大概了解了一下,我们写Android程序,都是基于系统给我们的api进行编程的。而系统给的api,需要安装sdk才能使用(这是我个人理解的),所以,为了编程方便,我们搭建eclipse环境,然后安装adt插件,配置sdk后,用eclipse进行编程即可。二、环境搭建

2014-12-07 14:28:42 1249

原创 zoj2676 Network Wars(0-1分数规划,最大流模板)

Network Wars07年胡伯涛的论文上的题:http://wenku.baidu.com/view/87ecda38376baf1ffc4fad25.html代码:#include #include #include #include #include #include const int N = 111;const int M = 404;const doub

2014-11-11 15:10:19 1297

原创 hdu4456 Crowd(二维树状数组)

题意:给出一个n*n的矩阵,然后m个operation,1表示坐标(x,y)的值加z,2表示与坐标(x,y)的曼哈顿距离不超过z的点的权值和。解题思路:将矩阵侧过来45度,发现询问的时候,有效的点构成的其实是一个矩阵。然后就变成了单点修改,求矩阵和的问题。我们考虑裸二维树状数组的做法,会发现矩阵太大,但是注意到,初始的时候,矩阵里面所有的值都为0,那么这个二维树状数组中,有效的点就是修改的那些

2014-11-08 19:23:54 1280

原创 Sevenk Love Oimaster(trie,MAP后缀自动机)

题意:给出n个串,再m个询问,每次询问一个串s,问给出的n个串中,子串包含s的有几个解法:给这n个串建立trie,再将trie建成sam,然后我们要知道的是,对于每一个状态u所表示的子串,被几个串包含,这里跟http://blog.csdn.net/no__stop/article/details/38611209这题的处理方法类似,不再赘述。然后询问的串,就去sam上匹配,匹配到哪个节点,就

2014-11-01 13:19:07 1281

原创 zoj 2112Dynamic Rankings(树状数组套splay)

zoj 2112Dynamic Rankings(树状数组套splay)

2014-09-30 16:57:36 953

原创 bzoj 1901: Zju2112 Dynamic Rankings(树套树)

1901: Zju2112 Dynamic Rankings经典的带修改求区间第k小值问题树套树模板,我是用的线段树套splay实现的,而且用的数组模拟的,所以可能空间略大,bzoj过了,zoj过不了。思路很简单,用线段树维护区间,用splay维护区间内的权值,然后询问的时候,二分答案key,然后在区间内找小于key的数有多少个。贴上模板:#include#include#

2014-09-28 19:39:18 1218

原创 hdu 5008 Boring String Problem(后缀自动机构造后缀树)

hdu 5008 Boring String Problem(后缀自动机构造后缀树)题意:给出一个字符串s,然后每次询问一个k,求s的所有子串中,字典序第k小的是谁?多个解,则输出最左边的那个解题思路:这道题应该是为后缀树量身定制的吧。只要构造出了后缀树,然后按字典序遍历就可以得出每个节点包含的子串的字典序的范围了,而且必然是个连续的区间范围。但是我不会后缀树啊。。比赛的时候突然想到,后缀

2014-09-23 16:47:38 2430

原创 hdu 5002 Tree (LCT)

hdu 5002 Tree (LCT)几乎是模板题,维护一个最大值和次大值即可。代码:

2014-09-17 20:13:35 982

原创 Codeforces Round #129 (Div. 1)E. Little Elephant and Strings

题意:给出n个字符串,问每个字符串有多少个子串至少出现在z

2014-08-17 09:01:39 1621

原创 hdu 4878 ZCC loves words(AC自动机+dp+矩阵快速幂+中国剩余定理)

hdu 4878 ZCC loves words(AC自动机+dp+矩阵快速幂+中国剩余定理)题意:给出若干个模式串,总长度不超过40,对于某一个字符串,它有一个价值,对于这个价值的计算方法是这样的,设初始价值为V=1,假如这个串能匹配第k个模式串,则V=V*prime[k]*(i+len[k]),其中prime[k]表示第k个素数,i表示匹配的结束位置,len[k]表示第k个模式串的长度(注

2014-08-14 19:51:49 1339

原创 hdu4921 Map(状压统计)

hdu4921 Map(状压统计)题意:有10条长度不超过1000链,链上的节点有权值。我们从这些节点中选出一些节点来,若要选节点u,则u的前继都得被选进去。对于某一种选定的情况,我们能获得的权值为,选定的节点的权值和,以及一些附加值。附加值的求法为,对于每条链的同一深度的点,若选定的点的个数超过1,那么会得到的附加值为(si*xi/ci),其中si表示该层选中的点的权值和,xi为该层选中

2014-08-13 09:10:46 792

原创 hdu 4917Permutation(状态压缩DP)

hdu 4917Permutation(状态压缩DP)题意:将1~n的n个数排列成序列(n解法:我们首先可以明确一点,这m个限制条件,所表示的关系会构成若干个DAG(有向无环图,我将其称之为拓扑图)。我们只要将这n个数,填入到拓扑图上,使其满足拓扑关系,那么这样的序列就是可以的。而这若干个拓扑图之间,是不会相互影响的,因而我们可以单独考虑每一个拓扑图。对于单独的一个拓扑图,

2014-08-13 09:09:49 1307

原创 hdu 4929 Another Letter Tree(LCA+DP)

hdu 4929 Another Letter Tree(LCA+DP)题意:有一棵树n个节点(n解法:一个很直观的想法,求出lca(设其为w)后,枚举x,求出a到w的路径上,能匹配s0的x长度前缀的情况有多少种,令其为c[x]。再求出b到w的路径上能匹配s0的L-x(L表示s0的长度)长度后缀的情况有多少种,令其为d[l-x],那么将所有的c[x]*d[l-x](x属于[0,l]

2014-08-13 09:08:47 1153

原创 hdu 4912Paths on the tree (LCA)

hdu 4912Paths on the tree (LCA)解法:求

2014-08-06 19:13:18 734

原创 hdu 4067 Random Maze(费用流)

先贪心选边,然后根据平衡条件建图。

2014-07-25 19:03:54 728

原创 hdu 2883 kebab(存个最大流模板)

#include#include#include#include#define ll __int64using namespace std ;const int N = 11111 ;const int M = 2222222 ;const ll INF = (ll) 11111111 * 11111111 ;struct Task { int l , r , t ,

2014-07-25 18:39:36 755

原创 UVALive 5962 Strongly Connected Chemicals

UVALive 5962Strongly Connected Chemicals

2014-07-25 14:36:17 1033

原创 支配集,点覆盖集,点独立集之间的联系

1.设无向图G(u,v)中无鼓励顶点,则G的极大点独立集都是G的极小支配集。逆命题不成立理解:设V*为G的一个极大点独立集,那么对于那些不属于V*的点,他们肯定跟V*里的某个点相连(否则就不是极大了),因此V*肯定是个支配集。而又因为V*里,所有的点都是独立的,所以,把任何一个点拿出V*后,该点跟V*中剩余的所有的点都没法相连,即无法被支配。故在该条件下V*为极小支配集。2 一个独立集是极

2014-07-25 13:34:17 1831

原创 hdu 4862 Jump (费用流)

hdu 4862 Jump (费用流)建图:新建一个temp节点,源点像temp连一条流量为k,费用为0的边,表示最多有k条路径。将原图每个点拆为两个点(i,i')表示流入该点和流出该点。temp像每个i连边,容量为1,费用为0,表示每个点都可以作为起点。为了保证每个点都被走到,每个的i向i’建边,容量为1,费用为-INF,表示费用非常非常小,它对流非常具有吸引力。每个i‘向能去的j建边,容量

2014-07-23 15:23:53 1009

原创 UVALive 6557 Stampede!(最大流)

UVALive 6557 Stampede!(最大流)

2014-07-22 09:32:46 860

原创 zoj 3795 Grouping(强连通缩点)

zoj 3795 Grouping(强连通缩点)

2014-07-16 16:19:30 649

原创 hdu3572 Task Schedule (最大流)

题意:有n个task,task[i]需要p[i]天完成,必须在第t[i]天之后或开始

2014-05-21 13:14:18 801

原创 poj1273 (最大流)

#include#include#include#includeusing namespace std ;const int maxn = 222 ;const int INF = 2111111111 ;struct Edge { int from , to , cap , flow , next ;} edge[maxn<<1] ;int head[maxn] ,

2014-05-14 16:38:44 769

原创 Codeforces Round #244 (Div. 2)D (后缀自动机)

Codeforces Round #244 (Div. 2)D (后缀自动机)(标号为0的节点一定是null节点,无论如何都不能拿来用,切记切记,以后不能再错了)这题用后缀自动机的话,对后缀自动机的很多性质有足够深刻的理解。没想过后缀数组怎么做,因为不高兴敲。。。。题意:给出两个长度均不超过5000的字符串s1,s2,求这两个串中,都只出现一次的最短公共子串。解题思路:求的是公共子

2014-05-04 16:02:18 1468

原创 Modified LCS(扩展欧几里得)

Modified LCS(扩展欧几里得)

2014-05-02 17:04:20 772

原创 zoj3533 Gao the String I(splay)

题目链接:zoj3533 Gao the String I题意:其实就是维护一个数列。有四个操作,reverse和modify就是常见的splay操作,lcp(i,j)操作,表示求后缀i,j的最长公共前缀,palindrome是求整个串的最长回文串。解题思路:首先我们要搞清楚的是要维护什么,palindrome操作因为只有10个,所以这个是可以暴力做的。那么关键的是怎么求lcp了,没什么好

2014-04-09 11:46:22 1742

原创 zoj 3535 Gao the String II(ac自动机+dp)

Gao the String II题意:有字符串集合A,B。每个集合内最多有50个字符串,每个字符串长度不超过10,用A集合内的字符串link(link操作就是连接,比如已经link得到一个s,那么可以直接在s后面接上一个A里面的字符串,也可以将s的后缀跟要接上的串的前缀叠在一起连接)成一个长度不超过L的字符串s,问s与每一个B里面的字符串匹配,得到的匹配位置数之和最大是多少?ps:比赛的时候

2014-04-08 12:21:54 1306

原创 判点是否在凸包内(二分极角序)

判点是否在凸包内(二分极角序)解题思路:以p[1]为基点,将所有的点按极角序排好,然后共线都点都去掉(当然,这个处理还是有点小麻烦)。如果我们将所有的点跟p[1]相连,可以将凸包划分成n-2个扇形区。那么,我们可二分出要判断的点所在的扇形区,然后用差积判是在内侧还是外侧。代码:#include #include #include #include #include #incl

2014-04-02 15:43:23 1714

原创 [APIO2012]派遣 (平衡树启发式合并)

[APIO2012]派遣 (平衡树启发式合并)题目大意:大概是这样的,一棵树n个点,每个点有点权val[i]和cost[i],给定一个m,对于每颗子树,计算出一个w值,w的计算方法为(val[i]*k),其中k为i子树下,最多能取出的使得cost的和小于等于m点的个数。解题思路:假如,我们能将一颗子树的每个点,以cost为key,建成平衡树,那么计算答案想必还是比较简单的吧。但是我们不能给

2014-04-01 15:18:39 1506

原创 zstu4143 Tree Query (函数式线段树)

4143: Tree Query代码:#include #include #include #include #include #include #include #include #include #include #include #define lowbit(x) (x&(-x))#define ll __int64#define lson l , m ,

2014-03-23 21:28:45 851

原创 poj2104 K-th Number (函数式线段树)

K-th Number求区间第k小,刚学了个模板代码:#include #include #include #include #include #include #include #include #include #include #include #define lowbit(x) (x&(-x))#define ll __int64#define lso

2014-03-23 19:53:01 722

原创 2002: [Hnoi2010]Bounce 弹飞绵羊(link-cut-tree)

2002: [Hnoi2010]Bounce 弹飞绵羊题意:中文题就不解释了。解题思路:对于i,到i的绵羊会被弹到i+ki位置上,那么我们连一条(i,i+ki)的边,所有的关系建完之后,就是一个森林,而i位置被弹几次,自然就是其深度了。这里再做一个改进,设一个虚拟节点,将森林里,树的根都连在n+1这个节点上,那么所有的关系就是一颗树了。这样做是方便操作。在修改这个操作的时候,我是先将a和a

2014-03-22 23:23:53 1218

原创 bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (link-cut-tree)

2049: [Sdoi2008]Cave 洞穴勘测题意:一幅图,进行三个操作,destroy(a,b)断开a,b之间的边。 connect (a,b),连接在a,b之间连一条边,query(a,b),询问a,b是否联通。任何操作都会保证不会出现环,也就是这幅图是森林。解题思路:lct模板题。碰到了一点小小的困难,就是destroy操作,之前没有学过换根,这次学了一下。cut(a,b),操作

2014-03-22 11:59:29 1716

原创 D - Minesweeper 1D

Codeforces Round #237 (Div. 2) D - Minesweeper 1D题意:类似于扫雷游戏,但只有行,有些格子是已知的,有些未知,‘?’表示未知,其余为已知。'0'表示左右都没有雷,'1'表示左右一共有一个雷,'2'表示左右一共有两个雷,‘*’表示本身就是雷。问合法的情况一共有多少种?解题思路:这似乎也是可以算作是某一类dp了吧,我已经做到过若干道类似的题了

2014-03-20 14:26:08 2102 1

原创 spoj QtreeII(link-cut-tree模板)

Query on a tree II题意:给一棵树,若干个询问,询问1.(a,b),a到b的路径和。2.(a,b,k)a到b的路径上,第k个点是谁。解题思路:事实上,这题并未涉及到任何信息的修改,用lca完全可以了。lct似乎有那么点脱裤子放屁的感觉。。不过思路还是挺简单的,建好lct,然后询问的时候,先access(a),然后在access(b)的过程中,一旦发现parent(r

2014-03-18 15:52:54 1320

原创 hdu 1890 Robotic Sort(treap)

Robotic Sort题意:给一个数列,用某一特定的方法对其进行排序。其排序方法是,第i次排序时,找到第i小的元素的位置p,输出这个p,并将[i,p]这段区间翻转。进行n次这样的操作后,序列有序。解题思路:以前用splay写过,思路是抄的别人的。学习treap后,重新再想了一下这个题,想到了一种新的思路。大概是这样的:首先,离散化还是有必要的,因为它会根据原序列里的位置定下其元素的大小。

2014-03-11 21:01:29 1399 1

原创 [NOI2005]维修数列

[NOI2005]维修数列中文题,题意不解释。。平衡树模板,做法不解释。。就看你模板是否够硬了。。先来发伸展树:#include#include#includeusing namespace std ; const int maxn = 1000502 ;const int INF = 1111111111 ; int size[maxn] , fa[maxn] ,

2014-03-08 10:43:20 1250

原创 hdu 1150 Machine Schedule (最小点覆盖)

hdu 1150 Machine Schedule (最小点覆盖)结论:二分图的最小点覆盖数=最大匹配数import java.io.*;import java.util.*;import java.math.*;class Edge { int t , next ;}class solution { static Scanner in = new Scanner ( S

2014-03-05 13:31:24 997

原创 浙大2014 3月月赛I题(伸展树)

模板:#include#include#include#define ll long longusing namespace std ;const int maxn = 500011 ;ll gcd ( ll a , ll b ) { return ( b == 0 ? a : gcd ( b , a % b ) ) ;}int num[maxn] , f[max

2014-03-02 18:12:18 1035

原创 hdu 1068 Girls and Boys (最大匹配入门)

hdu 1068 Girls and Boys (最大匹配入门)结论是:最大独立团=定点数-最大匹配#include #include #include #include #include #include #include #include #define ll __int64#define lson l , m , rt << 1#define rson m + 1

2014-02-27 14:58:58 991

AC自动机练习题

AC自动机练习题,加简单的思路。。又要详细思路及代码的可以到我博客里看,也可以联系我。

2013-05-27

rmq算法(倍增)

rmq算法,有详细注释 dp1[i][j] = max ( dp1[i][j-1] , dp1[i+(1<<(j-1))][j-1] ) ; dp2[i][j] = min ( dp2[i][j-1] , dp2[i+(1<<(j-1))][j-1] ) ;

2012-12-17

空空如也

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

TA关注的人

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