Ciocio

自己选择的路,跪着也要走下去!

【PYC#1 欢乐赛】 题解

【题目地址】点击打开链接 【分析们】 【T-1】 树状数组+Trie树 【T-2】 首先显然这是个堆,这个堆以位置为关键字,且形状固定。 我们要做的就是将数字1~N填入堆中,并且令这些数字也满足堆性质。 考虑我们有一个以x为根的堆,有i个数字可以填。 我们用M[i]...

2014-02-23 15:57:00

阅读数 1073

评论数 0

【KpmCup#0 省选模拟赛】题解

【题目地址】 【T-1】 很明显的差分约束系统,判负环。 但是裸的要超时,我们注意到一个负环必定在一个强连通分量中。于是我们先求出SCC,再判负环。 只需要判断入队次数大于sqrt(N)即可,虽然这样是有反例的,但大多数数据是能过的。 【T-2】 斜率优化dp 我们可以得到一个dp方程: ...

2014-02-20 16:45:11

阅读数 1235

评论数 0

TopCoder SRM 607 题解

。。。第一次进div1,就一道都没有搞出来,第一题理解错了题意,第二题乱搞没有成功,第三题没看 。果然深夜+感冒不是适合刷题的模式啊,不过幸好还保持在blue。 最后看了看WJMZBMR神犇的代码,表示自己果然傻逼,连第一题这样的傻逼题都没A。 250pt: 分奇数和偶数长度分别讨论,然后直接...

2014-02-03 22:30:29

阅读数 1196

评论数 1

HEOI-2012 DAY1 题解 (BZOJ 2742-2744)

Pro 1: 【题目大意】 给出一个一元n 次方程:  a0 + a1x + a2x2 +…+ anxn= 0 求此方程的所有有理数解。  Input 第一行一个整数 n。第二行n+1 个整数,分别代表a0 到an Output 第一行输出一个整数 t,表示有理数解的个数。  接下来t 行,每行...

2014-01-19 14:28:59

阅读数 1987

评论数 0

SBT!!

具体的讲解请参见陈启峰大牛的论文,此处仅给出C++实现的代码,仅供参考。 准备工作: struct SBTnode{ int lc,rc,sz,key; }T[MAXN<<1]; int root,SBTtot; 旋转: void _Right_Rotate(int &x) ...

2013-11-23 10:33:45

阅读数 886

评论数 0

NOIP 2013 提高组题解 【附AC代码】

NOIP2013 提高组题解

2013-11-19 15:28:44

阅读数 3473

评论数 0

最近公共祖先

Description 给出一棵有N(编号1到N)个节点的有根树,求出指定节点对的最近公共祖先!    对于树中节点x而言,从根节点到达x的这一条路径中经过的所有节点,都称为x的祖先。  如上图所表示的树中, 根节点为8。8、4、10、16都是12的祖先。对于6和12这对节点而言,从6出发...

2013-10-24 17:26:34

阅读数 790

评论数 0

输入输出优化

本人亲自测试,一般使用这两个优化时间能降到原来的一半。(只针对输入输出数据超过5w组的题目,数据量越大,优化越明显) 【原理】         众所周知,scanf和printf比cin和cout要快,但是更快的是getchar和putchar。 【代码】 1.输入优化 void _in(int...

2013-10-03 13:55:21

阅读数 1517

评论数 5

RMQ Sparse Table实现简析及代码

【分析】 预处理:     采用DP的思想,f[i][ j]表示[i , i+2^j - 1]区间中的最小值(也就是从第i个数起连续2^j个数中的最小值)。        如数列3,2,4,5,6,8,1,2,9,7。f[1][0]=3,f[1][1]=2,f[1][2]=2,f[1][3]=1...

2013-10-03 13:17:26

阅读数 778

评论数 0

单调队列简述

单调队列,顾名思义,里面的各个元素是(严格)单调递增(减)的,且各个元素的下标也是单调递增(减)的。这个队列要满足队尾和队首都能够删除元素,但只有队尾能添加元素。而在删除元素的时候,就能够求得很多信息。使用单调队列往往可以优化时间复杂度至O(n)。         单调队列在oi中有很多应用和模型...

2013-10-01 17:06:34

阅读数 588

评论数 0

Splay的几种操作(代码)

1.右旋(zig) void _zig(int x) { int y,z; y=pr[x]; z=pr[y]; if(z==0) root=x; else if(ls[z]==y) ls[z]=x; else rs[z]=x; pr[x]=z; p...

2013-09-28 16:00:32

阅读数 565

评论数 0

最小环(有向无向均可)

朴素的算法:     令e(u,v)表示u和v之间的连边,再令min(u,v)表示,删除u和v之间的连边之后,u和v之间的最短路。那么最小环则是min(u,v) + e(u,v),时间复杂度是O(V^2E)。 改进的方法:     在floyd的同时,顺便算出最小环      an...

2013-09-28 11:16:13

阅读数 966

评论数 0

背包问题求第K优解

【基本思想】     将每个状态都表示成有序队列,将状态转移方程中的max/min转化成有序队列的合并。这里以01背包为例讲解一下。 【分析】     首先看01背包求最优解的状态转移方程:F[i][v]=max(F[i-1][v],F[i-1][v-C[i]]+W[i])。如果...

2013-09-28 09:28:51

阅读数 1279

评论数 0

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