自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DBL

  • 博客(145)
  • 资源 (3)
  • 收藏
  • 关注

原创 POJ 3468 A Simple Problem with Integers

由于Rotate中pushdown(x)和pushdown(y)的顺序搞反了导致答案一直不对。应该是xianjiang

2014-08-02 15:42:00 562

原创 HDU 1754 I Hate It

水题,Splay做下。 #include #include #include #include using namespace std; #define N 200005 #define mod 20140518 const int inf = (1 << 29); typedef long long LL; int n, m; int pre[N], key[N], ch[N][2],

2014-08-01 16:47:41 498

原创 CF 448D Multiplication Table

首先二分答案。每行加上min(x, (x-1

2014-08-01 10:53:52 583

原创 CF 448C Painting Fence

分治。最大值为n个篱笆都竖着涂。

2014-08-01 10:23:05 540

原创 [NOI2004]郁闷的出纳员

之前SBT写过一次,Splay再写一次。 因为少加一对括号

2014-07-10 17:34:05 511

原创 CF 444C DZY Loves Colors

线段树,lazy。三个变量,col, sum, add。add为lazy标志,sum为区间

2014-07-07 16:19:53 623

原创 最长回文子串

O(n)算法 #include #include #include #include using namespace std; #define N 1000005 #define mod 20140518 #define inf 1 << 29; typedef long long LL; int n, m; char a[N]; char b[N << 1]; int p[N << 1

2014-07-07 14:55:30 449

原创 [HNOI2002]营业额统计

splay学习第一题。代码基本看cxlove的。splay

2014-07-06 19:14:26 517

原创 POJ 3468 A Simple Problem with Integers

线段树lazy标记。正在看splay,碰到顺便复习下。

2014-07-06 11:34:20 454

原创 [NOI2004]郁闷的出纳员

SBT第一题。代码照抄cxlove。 #include #include #include #include #include using namespace std; #define N 200005 typedef long long LL; struct SBT{ int lson, rson, sz, key; void Init(){ lson = rson = ke

2014-04-28 22:27:04 565

原创 POJ 2886 Who Gets the Most Candies?

线段树 + 反素数。写的很挫。。。gu

2014-04-25 10:18:04 450

原创 HDU 2296 Ring

AC自动机+dp。注意最后极值为0的情况,wa一发。

2014-04-20 13:27:29 567 2

原创 POJ 1625 Censored!

自动机 #include #include #include #include #include #include using namespace std; #define N 2005 #define INF 1000000009 typedef long long LL; int n; int letter[300]; struct Trie { Trie *fail; Tr

2014-04-19 21:47:17 465

原创 POJ 2389 Bull Math

大数乘法。顺手把加法也写了

2014-04-19 20:06:53 488

原创 HDU 2243 考研路茫茫――单词情结

ACzid #include #include #include #include #include #include using namespace std; #define N 20005 #define INF 1000000009 typedef long long LL; struct Trie { Trie *fail; Trie *next[27]; int

2014-04-14 21:58:24 565

原创 HDU 2457 DNA repair

基本照抄cxlove代码。。。AC自动机+DP。

2014-04-13 21:43:53 460

原创 POJ 2778 DNA Sequence

AC自动机+矩阵。模式串数量he

2014-04-09 23:13:01 435

原创 POJ 3233 Matrix Power Series

求矩阵幂的和。构造个2n*2n的矩阵,左上和右上为b

2014-04-04 20:28:43 432

原创 HDU 1575 Tr A

矩阵幂模板题。AC自动机+矩阵的题mei

2014-04-03 21:46:14 477

原创 HDU 3065 病毒侵袭持续中

AC自动机模板题。感觉数据略水。从2896改过来的 #include #include #include #include #include #include using namespace std; #define N 2000005 char a[1005][55]; char b[N]; int n, m; int sum; struct Trie { Trie *fail;

2014-04-02 21:46:38 490

原创 HDU 2896 病毒侵袭

AC自动机模板题。重新学习,熟悉下。 #include #include #include #include #include #include using namespace std; #define N 100005 char a[205]; char b[10005]; int ans[20]; int n, m; int idx; struct Trie { Trie *fail

2014-04-02 20:59:57 465

原创 POJ 3167 Cow Patterns

kmp + 树状数组。树状数组动态更新排名。明白了方法以后,细节方面调了半天。。。想吐了。。。逗b的地方也不想改了。注意代码中注释的地方。 真的要想清楚再写,不然很浪费时间。 #include #include #include #include #include #include using namespace std; typedef long long LL; #define

2014-03-29 16:51:28 449

原创 POJ 2185 Milking Grid

利用next数组求最小重复覆盖字串长度,即x = len - next[len]。先求每行最小长度再求每行最小公倍数,纵横相乘可过。 PS:以上是错误思路,仅为理解next数组。目测这篇文章是正解:http://blog.sina.com.cn/s/blog_69c3f0410100tyjl.html #include #include #include #include using

2014-03-28 20:00:24 420

原创 POJ 1226 Substrings

简单kmp,将以第一个串的所有字串为模式串。已经做过,再做一次,复习下kmp. #include #include #include #include #include #include using namespace std; typedef long long LL; #define lson l, m, rt << 1 #define rson m + 1, r, rt <<

2014-03-28 10:31:44 387

原创 POJ 2541 Binary Witch

比较水的一题,正解觉得是状压,但是第一眼看去就觉得是hash,其实本题hash状压是一样的。 #include //hash #include #include #include #include #include using namespace std; typedef long long LL; #define lson l, m, rt << 1 #define rson m +

2014-03-27 21:01:23 482

原创 安大oj 673 聪明的输入法

字典树模板题,表示很简单,只是看不懂题。。。 #include #include #include #include using namespace std; typedef long long LL; #define N 100005 char a[N][15]; int n; int ptr; struct Node { int son[27]; int ex; in

2014-03-26 23:29:06 757

原创 HDU 4731 Minimum palindrome

学会了打表找规律。m >= 3时abc循环最小,m=2时打表找规律即可。 ps:m>=3时,n%3,即多出来的数加在后面,加前面会令回文从3增加到4或5 #include using namespace std; int n, m; int main(){ int t; int num = 1; scanf("%d", &t); while(t--){

2014-03-26 10:04:54 437

原创 HDU 4734 F(x)

数位dp,写的非常挫。ul为超出部分,fu为缺少部分。当前数位超出或缺少部分大于一定数值可直接返回 #include #include #include #include #include #include using namespace std; typedef long long LL; #define lson l, m, rt << 1 #define rson m + 1,

2014-03-25 21:53:38 388

原创 HDU 4737 A Bit Fun

水过。不知道是dp还是什么,懒得想了。直接n^2过。 #include #include #include #include #include #include using namespace std; typedef long long LL; #define lson l, m, rt << 1 #define rson m + 1, r, rt << 1 | 1 #define

2014-03-25 15:08:25 387

原创 SPOJ 2815. Increasing Subsequences

dp,开50棵线段树,每棵存到当前位置连续长为k的序列总数。注意代码中有一需要注意的地方,即当前数为最小数时,前一棵树的总和必然为0,不能通过求p - 1的总和数来求,此时p - 1 为-1会导致出错。另外,没离散化1e5超时,离散化1e4过了,spoj真是卡常数。。。 #include #include #include #include #include #include usi

2014-03-25 14:42:23 792

原创 SPOJ 3408 DNA Sequences

求最长公共子序列,且每一连续子段的长度不小于k。用sum数组记录前面有多少连续的序列。sum[i][j] 只能由sum[i - 1][j - 1]转移而来。sum数组的转移与dp数组的转移独立开来。当sum[i][j] > k时,可以选择从前一位连过来,也可以从前k位连过来。[i,j]序列还是表示当前位置的状态好点,若表示[i - 1, j - 1]的状态则最后会略纠结。 #include #

2014-03-22 14:55:06 817

原创 CF 10D LCIS

最长公共递增子序列。o(n*m)做法。只在cf上过了。。。poj,zoj都wa出翔了。。。记录路径要开二维数组否则会wa。 #include #include #include #include #include #include using namespace std; typedef long long LL; #define INF 1000000007 #define N 5

2014-03-19 20:45:30 684

原创 CF 402D Upgrading Array

暴力搞过。。。处理出从1 到 i的公约数。从右往左开始判断,如果公约数的值小于零直接约掉。然后计算总和即可。注意处理素数大于sqrt(1e9)的情况。当给出素数中存在大于素数表最大值的素数时,加入素数表。v记录是否为坏素数。当除以约数结束时,判断剩下的值是否存在于素数表中,存在则根据v数组的记录判断加或减,否则加1. #include #include #include #include

2014-03-18 22:13:28 529

原创 湘潭大学oj 1191 Hard Wuxing

矩阵乘法求解。非常卡时间。因为转移矩阵固定,直接处理出快速幂中所有转移矩阵的幂。还有因为没用longlongRE了一发 #include #include #include #include #include #include using namespace std; typedef long long LL; #define INF 1000000007 #define N 5 s

2014-03-18 21:03:23 893

原创 ustc 1233 Gift

一开始想先选出送出的物品,再乘以临界点的种类。但是求组合数超时。先枚举临界点,再乘以所有可能(2的幂)即可。 #include #include #include #include #include #include using namespace std; typedef long long LL; #define INF 100007 #define N 10005 int a[

2014-03-16 21:38:09 422

原创 合工大oj 1307 散步

13年安徽省赛题目。bfs处理出所有点到n,m点的最短距离,再dfs一次即可。 ps:在bfs时,加入v数组若i,j点已经在栈中则不必入栈,更新距离即可。避免重复入栈导致超时。 #include #include #include #include using namespace std; #define N 100 #define INF 1000000000 typedef lon

2014-03-15 17:13:40 1330

原创 POJ 1947 Rebuilding Roads

树形dp。dp[i][j],表示以第i个节点为根节点,形成含有j个节点的子树最少去掉的边。最后计算答案时除根节点外,其余节点的答案都要+1,因为与父节点有条边。状态由下一层转移过来时dp[i][j] = min(dp[i][j], dp[tmp][x] + dp[i][j - x] - 1);减1是减掉下层与当前节点连接的边。 ps:因为必然有答案,所以转移状态时不需要特判。必须从sum[rt]

2014-03-15 10:47:20 503

原创 HDU 1561 The more, The Better

树形dp。卡了下。一开始是在一条链上做dp,当1为根节点,2,3都是其子节点时,我的做法无法同时选1,2,3。dp第一位代表节点,第二维代表用掉数目,由下一层节点递归上来。ps:改掉了波神吐槽的指针。。。 #include #include #include #include #include #include using namespace std; typedef long lo

2014-03-13 21:46:02 434

原创 POJ 3140 Contestants Division

树形dp,水。 求将一棵节点有权值的树分成两块,两块总权值差最小值。 ps:注意本题要用longlong,第一次应该wa在这里,然后换了种写法,导致tot和mv未初始化,再wa一发。这类题目初始化问题需要格外注意。 #include #include #include #include #include #include using namespace std; typedef l

2014-03-12 16:22:35 502

原创 POJ 1655 Balancing Act

树形dp,水。 平衡值是去掉当前节点后剩下的树中节点数最大的树的节点数,求最小平衡值。多个答案任意输出一组。把2378的代码稍微改改就行了。。。 ps:双向存边时,边数应至少为节点的两倍,否则会RE. #include #include #include #include #include #include using namespace std; typedef long lon

2014-03-12 15:28:39 435

C++编程思想

thinking in c++ 中文版,学习c++可以参考阅读

2013-08-19

设计原本pdf

作者Frederick P. Brooks,Jerry Markatos

2013-08-19

10部算法经典著作的合集

本资源为十部算法著作英文原版,包括Dr. Dobb's Algorithms Collection 等书籍

2013-08-17

空空如也

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

TA关注的人

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