自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Codeforces 587C Duff in the Army

题意:给出一棵树,每个节点有一个权值集合(一个点有多个值),现在有q个询问,query(u,v,a)表示询问u到v之间的前a小的数。与 http://blog.csdn.net/mr_xujh/article/details/47271843 差不多就是这一题的每个节点上有多个值,不用离散化,查询的时候要输出前a小#include #include #include #inclu

2015-10-26 11:57:50 1100

原创 UVALive 6886

题意:一个有N个元素的A集合,然后在给你一个由M个数的B集合,问你,从A集合中取一次 或 两次得到的和 能得到的集合B中的数的个数如A:1,3,5B:2,4,5,7,8,9那么有B中有2(1+1),4(1+3),5(5),8(1+3+5) ,一共有4个数可以得到FFT模板题#include #include #include #include #include

2015-10-21 22:26:53 585

原创 Codeforces 528D

题意:给定一个主串和一个模式(都只含有ATCG),求模式在主串中出现的次数但是匹配的时候有一个偏移量K,即在用t[i]匹配s[j]的时候  只要s[j-k]---s[j+k]中有字符t[i]就算匹配;这里用了FFT参考:http://blog.csdn.net/u013368721/article/details/45565729#include #include

2015-10-21 17:09:46 801

原创 HDU 5446 Unknown Treasure

题意:求C(n,m)%p     p = p1 * p2 *....*pk;Lucas定理 + 中国剩余定理http://blog.sina.com.cn/s/blog_12fea76590102w6ts.html#include #include #include #include #include #include #include using namespace

2015-09-18 21:55:00 460

原创 HDU 5445 Food Problem

题意:首先有n种点心,每种点心的t,u,v代表该点心每个所提供的能量,体积,数量。  然后有m中车,每种车的x,y,z代表这种车的容量,费用,数量。  又有一个p,问你所选的点心达到p的能量值的时候所需要的最少费用。(点心可以切割,即可以分开到每辆车里面,但是一旦选了一个,就整的  都要放进车里)因为点心师可以切割的,所以我们可以分两次dp,第一次先求出要达到p能量的时候需要的最小

2015-09-14 10:07:13 1309

原创 POJ 1180 Batch Scheduling

斜率优化DP题意:给你N个jobs,要你去用一台或多台机器  顺序  完成,然后每一台机器启动之前需要S的时间去准备;如果一台机器要完成3个jobs,那么这3个jobs完成的时间就都是  tt  =(开始的时间 + S + t[a] + t[b] + t[c]);所以代价是tt*f[a] + tt * f[b] + tt * f[c];求完成所有jobs的最少代价这一到题目的难

2015-09-08 00:16:52 1278

原创 POJ 2676 Sudoku

这题数据水,可以直接暴力DFS解决然后学了下 dancing links 就试着解决这题#include #include #include #include using namespace std;const int N = 9;const int MAXN = N*N*N + 10;const int MAXM = N*N*4 + 10;const int M = MA

2015-09-01 22:28:50 385

原创 POJ 3261 Milk Patterns

题目意思大概就是,求可重叠的最少出现k次最长重复子串的长度。思路:后缀数组,二分最长长度#include #include #include #include using namespace std;const int N = 20050;int sa[N],rank[N],height[N],num[N];int wa[N],wb[N],wv[N],wd[N];

2015-08-27 21:38:53 379

原创 HDU 4348 To the moon

题目要求有一下几个操作:区间加个数(此时时间计数+1),查询区间和,查询历史区间和,时间回退到过去某个时间。可持久化线段树,用T[i]表示时间为i的时候的树根;由于整一个更新只有单一的加法,所以我们不必利用lazy标记,我们用一个标记来记录当前节点的整段区间被累加了多少,当询问的时候我们在从根节点走到目标结点的过程中不断累加所经过节点上的标记值,这样就提高了每棵树的共享信息#i

2015-08-22 19:49:46 604

原创 HOJ 2739 The Chinese Postman Problem

题目链接带权有向图上的中国邮路问题:一名邮递员需要经过每条有向边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少。首先,每条边进过一次的话我们就先统计所有边sum值,然后就是判断哪些边重复走了。统计所有点的入度与出度,设i点入度与出度的差为di;如果di>0,addedge(s,i,di,0),即要走多di次去覆盖如果di然后就是对于原来的边a

2015-08-22 11:43:41 759

原创 POJ 1815 Friendship

最小割参考网络流建模汇总教程:最大流-最小割定理http://blog.csdn.net/lenleaves/article/details/7887217#include #include #include #include #include #include using namespace std;#define ll long long

2015-08-20 10:22:55 321

原创 POJ 2699 The Maximum Number of Strong Kings

网络流  模板题参考网络流汇总http://blog.csdn.net/sdj222555/article/details/7797257#include #include #include #include #include using namespace std;#define ll long longconst int MAXN = 105;c

2015-08-16 09:50:43 526

原创 HDU 3045 MAX Average Problem

斜率优化DPdp[i] =max(dp[i],dp[j]+sum[i]-sum[j]-(i-j)*a[j+i]);#include #include #include #include #include #include using namespace std;#define ll long longconst int N = 500005;ll dp[N], s

2015-08-13 20:32:24 402

原创 HDU 3507 Print Article

利用斜率来优化dp参考:http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html#include #include #include #include #include using namespace std;#define ll long longconst int N = 500005;int

2015-08-13 18:42:33 389

原创 HDU 4417 Super Mario

题意:给你一个N大小的数列a[0].....a[n-1],输入L,R,H  求[L,R]区间内满足a[i]这里我用了主席树来写#include #include #include #include #include #include using namespace std;const int N = 100005;const int M = N * 40;int n,m,

2015-08-05 16:06:02 390

原创 ZOJ 2112 Dynamic Rankings

参考:http://blog.csdn.net/acm_cxlove/article/details/8565309http://www.cnblogs.com/Rlemon/archive/2013/05/24/3096264.htmlhttp://www.cnblogs.com/kuangbin/p/3308118.htmlhttp://seter.is-program

2015-08-05 11:33:05 575

原创 SPOJ COT 10628 Count on a tree

这题和普通的第K大类似。普通的第K大,是从后往前建立主席树,前一个在后一个的基础上修改。而树上第K大,依旧是每个结点一棵主席树,是在父节点的基础上修改。这里用了倍增法求lca这代码要跑2900MS左右。。#include #include #include #include #include #include using namespace std;const i

2015-08-04 09:26:57 650

原创 POJ 1986 Distance Queries

题意:求出两个树节点的距离思路:可以转化成d[u]+d[v]-2*d[lca(u,v)]       d[i]代表根节点到i的距离    lca(u,v)就是u,v的最近公共祖先的意思模板题第一种是tarjan的,比较快#include #include #include #include #include #include using namespace std;c

2015-08-03 11:33:45 444

原创 HDU 5318 The Goddess Of The Moon

题目:说了个后羿的传说。。。     给你n种串,可以重复使用,要你用m个串连成一个长的串,问你会用多少种不一样的长串,,,两个串 a , b 可以相连的条件是a的结尾跟b的开头的字符要一样,一样的字符的长度大于2就行    如  121  跟 213   但121 跟 123 就不行,当然121跟121也行11 111与111 11 连接的时候算两种思路:构造一个可以矩阵m[i]

2015-08-01 14:17:31 409

原创 HDU 5316 Magician

题意:给你一个数列,然后要有两种操作。操作1 x y 代表把数列的第x个数字改成y    操作0 x y 代表在a[x]....a[y]间找到一个beautiful 子序列的和最大beautiful 子序列就是相邻的两个数在原来的数列的位子的奇偶性不一样如a[1],a[4],a[5]就是,但a[2],a[4],就不是,因为2、4的奇偶性一样。思路:线段树,用一个结构体去保存某段的b

2015-07-28 20:34:35 422

转载 POJ 2728 Desert King

#include #include #include #include #include #include #define INF 1000000000#define eps 1e-7using namespace std;const int N = 1005;int n;double e[N][N],low[N];int nearn[N];struct point{

2015-07-27 16:04:50 313

原创 POJ 2723 Get Luffy Out

题意:给你2n把钥匙,分成n组,每组只能选一把,然后另一把就不能用了。同时,有m个门,每个门上有两把锁,打开一个就可以通过,问最多可以通过几扇门;思路:2-sat,假如(a,b)是同一组的钥匙,那么就有 a--b',b--a';(c,d)是同一门上的锁那么就有d'--c,c'--d;(为什么不是c--d',d--c'?  因为2-SAT其实就是找不相容的点对,你开了c,当然也可以开d,

2015-07-27 10:52:28 404

原创 HDU 3062 Party

2-sat 入门题《由对称性解2-SAT问题》#include #include #include #include #include using namespace std;const int N = 2010;vector vec[N];int n, m, id, cnt;int dfn[N], vis[N], low[N], belong[N];stack s;

2015-07-26 17:41:58 432

原创 POJ 2724 Purifying Machine

#include #include #include using namespace std;const int N = 1100;int n,m,t;int g[N][N],match[N],vis[N];char p[N][N];bool dfs(int x){ for(int i = 0; i < t; i++){ if(g[x][i] && !vis[i]){

2015-07-26 13:50:09 408

原创 POJ 2104 K-th Number

题意:给定一个数组,输入i, j, k,也就是询问i到j之间第k大的数思路:暴力,主席树(模板题);1、暴力就是对每一个数标好顺序,然后排序(这时候预处理完成);对于每个查询,暴力的扫一遍,遇到序号在i,j之间的数就k--,k=0是,就是所找的数/*暴力法Time: 7563MS*/#include #include #include using names

2015-07-19 22:10:54 497

原创 HDU 5236 Article

题意:每 i+0.1秒可以打一个字每 i+0.9秒软件有P的概率会崩溃(然后只能打开上一次保存的文章继续打字)每 i秒可以保存一次但是代价为     要打X个字符后才能保存(此时可以看成一瞬间打完X个字)(整篇文章打完之后当然要保存一次)求最佳策略使得打的字数量的期望最小题解:假设我们要保存k次(枚举k)那么我们猜想就是使得保存均匀一些此时求出每段的期望

2015-06-12 20:37:05 693

原创 HDU 2129 Computer

题意:一个有N个结点的树,给你相邻两个结点的距离,问你对于第i个结点,树中离i最远的结点的距离是多少。思路:每一个节点有两种情况,一种是在子树中,一种是在非子树中,所以就可以用两次的dfs分别求出两种最长距离#include #include #include #include #include using namespace std;const int N=10005;

2015-06-04 22:22:29 488

原创 POJ 2299 Ultra-QuickSort

树状数组求逆序如 i= 1  2  3  4  5        v= 9  1  0  5  4     id=  1  2  3  4  5排序后   i=  1  2  3  4  5      v= 9  5  4  1  0    id=  1  4  5  2  3 f[id]=  1  2  3  4  5   f[i]=  1  4  5  

2015-05-23 15:20:45 344

原创 NOI 2005 维修数列

NOI 2005 维修数列典型的伸展树模板题参考 http://www.cnblogs.com/kuangbin/archive/2013/08/28/3287822.html#include #include #include #include #include using namespace std;#define Key_value ch[ch[root][1]][0

2015-05-01 21:05:05 475

原创 POJ 3468 A Simple Problem with Integers

题意:给你n个数,q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c可以用线段树,树状数组,伸展树线段树:/*线段树*/#include #include #include #include using namespace std;#define ll long longconst int N=100005;in

2015-05-01 18:55:11 301

转载 HDU 3068 最长回文

求最长回文串的长度第一次写manacher算法参考     http://blog.sina.com.cn/s/blog_70811e1a01014esn.html首先,在字符串s中,用rad[i]表示第i个字符的回文半径,即rad[i]尽可能大,且满足:s[i-rad[i],i-1]=s[i+1,i+rad[i]]很明显,求出了所有的rad,就求出了所有的长度为奇数的回文

2015-04-24 22:50:52 339

原创 POJ 1743 Musical Theme

POJ 1743 Musical Theme题目大意:有N个音符(1--88的数字)表示一首歌曲,要求找两个最长的一样的主题(两段连续的数列)。要求两个主题长度至少是5两个主题可以转调,意思是主题数列中每个音符都被加上或减去了同一个整数值两个主题不可有重叠部分思路:后缀数组,先求出相邻两个数的差值,然后就转化成了在差值数列中找两段重复的,不重叠的连续子序列然后就是看长度

2015-04-23 21:38:33 337

空空如也

空空如也

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

TA关注的人

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