自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

alpc_wt的专栏

弱弱的我。。。

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

原创 Codeforces Round #260 (Div. 1) B. A Lot of Games Trie + 博弈

题意:两个人在Trie树上博弈k局,当前局输的人在下一局中执先手。在一局博弈中,当一个人不能走时,判定另一个人赢。最后一局的结果作为整个游戏的结果。分析:先手赢的情况为:(1)先手可必胜,也 可败。那么前k-1局败,最后一局胜利即可。(2)先手只能必胜。 当k为奇数时获胜。   后手赢的情况为:(1)先手必败。(2)先手只能必胜。 k为偶数。(本题的状态为取完当前节点的

2015-09-22 18:21:03 644 1

原创 回文树练习

回文树的题目一般只有几种类型,主要是应用cnt,num1.ural1960. Palindromes and Super Abilitieshttp://acm.timus.ru/problem.aspx?space=1&num=1960题意:每加入一个字符,询问不同回文串种类题解:每次调用add后,输出p(节点个数)即可代码:#include#include#in

2015-09-16 13:02:10 1446

原创 Palindromic Tree 回文自动机-回文树 解决回文串的神器

回文树,也叫回文自动机,是2014年夏天战斗民族发明的,其功能如下:1、求前缀字符串中的本质不同的回文串种类2、求每个本质不同回文串的个数3、以下标i为结尾的回文串个数/种类4、每个本质不同回文串包含的本质不同回文串种类(本文参考自Palindromic Tree——回文树【处理一类回文串问题的强力工具】)在回文树中,每一个节点代表一个本质不同的回文串,因为长度为n

2015-09-16 12:13:18 3832

原创 2015湖南省赛A题 BZOJ4254 Aerial Tramway 树形dp

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=4254题意:按照规则选m条线段,使得不超过k限制,得到权值和最大。题解:按照给定的规则,一条合法的线段下面必须全部低于此线段,也就是每一个线段一定被某个线段的完全覆盖,且不会出现线段非重合相交的情况。故所有的线段依据覆盖关系可形成一个森林,创建虚拟节点0,使得构建一棵树。然后就是树形dp

2015-09-04 11:15:47 812

原创 ZOJ3891 K-hash 后缀自动机SAM

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5561题意:给出一个整数K(本题属于SAM入门题,当时在做zoj月赛时还没学,学完后发现很简单。果然SAM功能很强大。题解:建造后缀自动机,按拓扑序从小到大进行dp,记录到此节点取模得到d的方案数。具体一点,y->num[(i*10+j)] += x

2015-09-01 18:03:52 611

原创 区间dp小结

今天刷了一遍 kuangbin带我飞之区间dp,做一下总结http://acm.hust.edu.cn/vjudge/contest/view.action?cid=77874#overview不知道看的谁的博客的一句话,区间最优解问题一般都是区间dp。有道理,资瓷呀!NO.1 hdu 3537 cake题意:给一个n个点的多边形(不一定是凸包),用n-3条线段切成n-2个三角

2015-08-23 23:58:53 649

原创 woj1572 Cyy and Fzz KMP / AC自动机 + DP

题目:http://acm.whu.edu.cn/land/problem/detail?problem_id=1572题意:  有n个目标串,长度均小于15,(n比赛的时候还以为是水题,其实是自己太水。这种题一般是AC自动机的中等题,本题也可以用KMP做,结合状压dp。方法一:AC自动机建完Trie树后,就是跑一遍dp,注意单词节点要 |=(1dp过程: 用

2015-08-18 22:24:38 984

原创 hdu5304 Eastest Magical Day Seep Group's Summer 状压dp+生成树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=530416个点的无向图,问能生成多少个n条边的连通图。(即多一条边的树)先n^3 * 2^n 枚举所有的环,状压dp就行。dp[i][j]表示以i为终点,走了j状态集合的方案数。要枚举起点,每次走比起点大的点。所以要n^3 2^n枚举。把环压缩成点,构造基尔霍夫矩阵,每种状态下n

2015-07-26 10:21:40 1349

原创 hdu4305Lightning 生成树计数(基尔霍夫矩阵)+高斯消元+逆元

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4305题意:比较裸的生成树计数问题。  如何处理生成树计数问题?基尔霍夫矩阵:if i==j  Kir[i][j] = i的度数if i!=j   Kir[i][j] = i到j的平行边的个数的负数即,基尔霍夫矩阵 = 度数矩阵 - 邻接矩阵将基尔霍夫矩阵删去第i行和第i

2015-07-25 16:32:38 1414

原创 hdu5293 Tree chain problem 树形dp+线段树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5293在一棵树中,给出若干条链和链的权值,求选取不相交的链使得权值和最大。比赛的时候以为是树链剖分就果断没去想,其实是没思路。看了题解,原来是树形dp,话说多校第一场树形dp还真多。。。。维护d[i],表示以i为根节点的子树的最优答案。sum[i]表示i的儿子节点(只能是

2015-07-22 10:38:56 1514 1

原创 51NOD算法马拉松 最大值问题 离线预处理+set lower_bound

题目:http://www.51nod.com/contest/problem.html#!problemId=1349题意:100000个数的序列,有100000次询问,每次问区间最大值大于等于k的区间有多少?思路:一开始没看到“大于等于”,想了很久也不会,原来看错题了。看错题害死人。一般询问的问题,如果不能用线段树log(n)求出,那么就离线做。首先将询问按从大到小排序

2015-07-05 11:08:08 1478

原创 cf451E Devu and Flowers 卢卡斯定理+容斥定理

题目:http://codeforces.com/problemset/problem/451/E题意:有n个盒子(n组合数学问题,求C(n,m).但n,m过大时,可用卢卡斯定理.卢卡斯定理:C(n,m) %p = C(n/p,m/p) * C(n%p,m%p)从n个盒子中取出s个球的方案数,相当于插板,即 C(s+n-1,n-1).注意这是没有限制条件的情况。

2015-07-03 16:08:39 1727

原创 hdu5274 Dylans loves tree LCA+线段树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5274 在树上的询问和操作,每次修改单点值,询问两点之间出现次数为奇数的点权是什么,若没有输出-1.询问保证两点间至多只有一个数出现奇数次。 有一种经典的将树上的点转化成序列的方法,我们用dfs遍历这棵树,那么对于一个节点,他一点比他的子树即子节点先访问到,且当他的最后一个子节点的所有子树也都

2015-07-02 23:39:44 696

原创 Codeforces Round #309 (Div. 1)D. Nudist Beach 二分+bfs

题目:http://codeforces.com/contest/553/problem/D 在一个无向图中,有若干坏点,选择一个不包含坏点的集合,使得集合中p值最小的点的p值最大。一个点的p值=集合中与该点相连的点的个数 / 与改点相连的总点数.

2015-06-28 19:39:16 907

原创 Looksery Cup 2015 H. Degenerate Matrix

又学会了二分的新用法,其实二分可以设置固定的二分次数作为跳出条件,当次数达到一定时,一定可以的到解,可以解决因精度而T的情况。向群神致敬。题目:http://codeforces.com/contest/549/problem/H代码:#include#include#include#include#include#include#include#include

2015-06-21 10:19:07 1071

原创 hdu3530 Subsequence 单调队列

题目:在一个序列中找一个最长子串,使得子串的m维护一个递减的单调队列q1(队首为当前最大),同时维护一个递增的单调队列q2(队首为当前最小),控制最大减最小 小于等于k , 若最大减最小大于等于m,则更新答案。代码:#include#include#include#include#includeusing namespace std;const int N = 1e5+10

2015-06-19 10:19:42 593

原创 hdu5261蜀道难 单调队列

题目:一个圆周被均匀分成n个点,每个点有一个高度h[i],定义两个点的距离是dis(i,j) = h[i] + h[j] + (劣弧i,j).问最长距离的点对,要求字典序最小。单调队列:因为是圆周,要先把圆周变成链,倍增即可。在2n的链上,维护一个 h[i]-r*i 的单调递减队列,控制队列元素个数为什么要维护h[i]-r*i的递减队列呢?因为革更新答案时 是用h[i]+r*i +

2015-06-19 10:10:08 876

原创 HDU4407Sum 容斥定理

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4407题意:在1E5个数中求某段区间中和p互素的数和。有1000次操作,每次操作可能是询问,可能是修改单点值。注意!!初始时,序列是1,2.....n,很关键呀。操作数很少,可以用map存下修改操作,每次询问求cal(r,p)-cal(l-1,p),在加上修改的影响。cal(r,p)可用容斥

2015-05-29 10:23:51 638

原创 HDU5072Coprime 容斥原理+双色三角形 2014 Asia AnShan Regional Contest

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5072题意:在1e5个数(<=1e5)中,找出有多少对(a,b,c) , 满足 ( gcd(a,b)==1 && gcd(a,c)==1 && gcd(b,c)==1 ) || (gcd(a,b)!=1 && gcd(a,c)!=1 && gcd(b,c)!=1 ) .这很像白书上一道双色三

2015-05-29 08:35:48 737

原创 Codeforces Round #305 (Div. 2) E. Mike and Foam 容斥原理

在一个集合中,找和x互素的数有多少?用容斥定理,先把每个数质因数分解(每个数至多有6个质因子),奇减偶加,就统计到和x互素的数了。代码:#include#include#include#include#includeusing namespace std;const int N = 5*100000+10;const int maxn = 5*100000;int c

2015-05-28 23:41:50 1106 1

原创 Sabotage 二分

题目链接:http://www.usaco.org/index.php?page=viewproblem2&cpid=419题意:有1,000,000个整数,要求从第2个到n-1个之间,删去一段连续的数,使得剩余数的平均数最小。( 1题解:二分法,二分一个平均密度p,使原序列均减去p,求得2~n-1的最大连续和,可得到剩余数的和的正负值。若为正,则p小于mid;否则,p大于mid。代码

2015-05-20 20:11:08 540

原创 2014 Shanghai Regional Room Assignment (DP)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5155题意:有n个颜色的球,其中有k对球颜色相同,别的都是完全不同的。给m个盒子,每个盒子的容量为c[i],有sum{c[i]}=n。问:有多少种姿势可以把n个球全部放入

2015-05-18 00:39:26 917

原创 hdu5212 Code 莫队算法

这道题需要一些莫队算法的知识定义记号f(A,B)表示询问区间A,B时的答案用记号+表示集合的并利用莫队算法我们可以计算出任意f(A,A)的值不妨假设A=[l1,r1],B=[l2,r2],C=[r1+1,l2−1]容易知道f(A,B)=f(A+B+C,A+B+C)+f(C,C)−f(A+C,A+C)−f(C+B,C+B)因此一个询问被拆成四个可以用莫队算法做的询问总的时间复杂度为O(

2015-05-01 12:48:36 820

原创 hdu2586 How far away Tarjar离线处理lca

题意:找u,v 的LCA用tarjar离线处理LCA    利用并查集优越的时空复杂度,我们可以实现LCA问题的O(n+Q)算法,这里Q表示询问的次数。     Tarjan算法基于深度优先搜索的框架,对于新搜索到 的一个结点,首先创建由这个结点构成的集合,     再对当前结点的每一个子树进行搜索,每搜索完一棵子树,则可确定子树内的LCA询问都已解决。     其

2015-04-16 00:27:23 542

原创 找到了一个讲STL的博客

找到了一个讲STL的博客http://www.cnblogs.com/ACMan/archive/2012/05/30/2526927.html

2015-04-12 10:38:28 494

原创 hdu4081 Qin Shi Huang's National Road System PRIM+dp

代码1:#include#include#include#include#includeusing namespace std;const int N = 1000 + 10;const double INF = 1.0*1e8;struct point{ double x,y; double val;}p[N];double get_dis(point

2015-04-03 10:32:57 417

原创 hdu5195 DZY Loves Topological Sorting 线段树+拓扑排序

要求在一个DAG中删去不多于k条边,使得拓扑序的字典序最大。贪心策略:每次删去入度小于res的,序号尽量大的点的入边。需要用线段树维护区间最小值。代码:#include#include#include#include#include#include#includeusing namespace std;const int N = 400000 +10;const

2015-04-02 19:54:13 556

原创 csu1515 squence 莫队算法

莫队大法好,分块一同乱搞。远哥出的题,当时没做出来,今天才学会莫队。如果[l,r] -> [l,r+1] 可以在o(1)时间内求出,就可以sqrt(n)分块后,对询问排序更新。因为我写的太丑了,必须用输入外挂才过了。复杂度msqrt(n)代码:#include#include#include#include#include#includeusing namesp

2015-04-01 20:41:12 497

原创 BZOJ 2038 小z的袜子

题意:(转)作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概

2015-04-01 11:35:36 591

原创 hdu5191Building Blocks 模拟

题意:看完电影后,乐乐回家玩起了积木。他已经搭好了n堆积木,他想通过调整积木,使得其中有连续W堆积木具有相同的高度,同时他希望高度恰好为H。乐乐的积木都这了,也就是说不能添加新的积木,只能移动现有的积木。他可以把一个积木从一堆移动到另一堆或者新的一堆,但是不能移动到两堆之间。比如,一次移动之后,"3 2 3" 可以变成 "2 2 4" 或者 "3 2 2 1",但是不能变成"3 1 1

2015-03-22 14:11:59 598

原创 csu1527Bounty Hunter (DP)

题意:从1走到n,再从n走回1,除1和n外,每个点只走一次。去的时候,点走升序;回的时候走降序。问走的最短距离?题解:我们可以视为从1走到n,走两次,每次延标号升序列走,且不重复走点。dp[i][j]表示从1出发,走双线程,走到j点(默认j>i,已走完1到j的所有点)的最小消耗则 dp[i][j+1]  = min(dp[i],[j+1] , dp[i][j]+dis(j,j+1) )

2015-03-22 14:02:50 1049

原创 hdu5188 zhx and contest (DP+map)

有限制的 0/1背包#include#include#include#include#includeusing namespace std;const int N = 30+5;typedef long long ll;map dp[3];map::iterator it;struct node{ int l,t,v;}p[N];int cmp(node a,

2015-03-20 09:35:45 377

原创 zoj3362 Beer Problem费用流

费用流双向边 (u,v,f,c)  拆分成4条边 (u,v,f,c)  (v,u,0,-c)  (v,u,f,c)  (u,v,0,-c)建立城市->汇点(u,T,inf,-price)#include #include #include #include #include #define V 800+10#define E 8000+10#define inf 9999

2015-03-14 18:53:36 437

原创 hdu3251 最小割

题意:给n个城市,m条有向边,每条边有权值,现在有些城市可以选择得到,可选的城市有一个价值,但是要满足从1到达不了这些城市,为了满足要求可以去掉一些边,需要花费边的权值,问最终得到的最大价值是多少,并给出方案。最小割 = 最大流建图很简单,源点就是1,设置汇点T。按图中的有向边关系连边。对于所有的可选择的城市u,连一条u->T的容量为w的边。跑一遍最大流,即为最小割。ans = s

2015-03-12 15:56:13 710

原创 数论四大定理

威尔逊定理若p为质数,则p可整除(p-1)!+1。欧拉定理欧拉定理,也称费马-欧拉定理。若n,a为正整数,且n,a互素,(a,n) = 1,则a^φ(n) ≡ 1 (mod n)孙子定理费马小定理假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 。假如p是质数,且a,p互质,那么 a的(p-1)次方除以

2015-03-08 11:13:23 3069

原创 hdu4888 Redraw Beautiful Drawings 最大流

最大流的一种类型的题,把每一行,每一列做一个点,连接源点到行,列到汇点,行到列。跑一遍最大流。如何判断unique?  按行dp,  dp[i][j] 表示在当前行,i未满且j不空,(若存在某两行的   dp[i][j]&&dp[j][i] == 1 , 那么结果不唯一 !!!)。另一种方法:在残留网络中找环,若存在,则答案不唯一。看代码:#include#include#in

2015-03-07 14:44:25 444

原创 hdu4126 Genghis Khan the Conqueror Prim + 树形dp

最小生成树Prim树形dp

2015-03-07 11:37:39 562

原创 hdu3652 && hdu 4722 && hdu3555

数位dp

2015-03-03 21:03:41 631

原创 hdu5179 beautiful number

hdu5179 beautiful number

2015-03-03 15:43:09 1203

原创 Codeforces Round #291 Div2

A. Chewbaсca and Number签到题//#pragma comment(linker, "/STACK:102400000,102400000") 手动扩栈#include#include#include #include#include#include#include#include#include#include#include#include

2015-02-15 19:25:38 638

空空如也

空空如也

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

TA关注的人

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