自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 NTT 分类: templates 2015-...

我觉得我还需要理解一下 FFT 和 NTT …#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>const int maxn = 4e4+5, Mod = 950009857;const int G ...

2015-08-11 23:34:00 117

转载 ToDoList 分类: introspect ...

poj2376bzoj3110 版权声明:本文为博主原创文章,未经博主允许不得转载。 转载于:https://www.cnblogs.com/dashgua/p/4722942.html...

2015-08-11 23:30:00 206

转载 zoj 2334 分类: zoj templa...

可并堆,左偏树,这是神犇“顺手学的东西”以下是左偏树的合并操作代码。int merge(int x,int y){//p[i] 结点i的权值,这里是维护大根堆//d[i] 在i的子树中,i到叶子结点的最远距离. if(!x) return y; if(!y) return x; if(p[x] < p[y]) s...

2015-08-11 23:12:00 186

转载 hdu 5357 2015-08-10 22:52 7人阅读 评论(0) 收藏...

括号匹配,栈开始感觉题意很奇怪,表示这道题不会做。。。然而看了题解,原来并不是太难啊~!我太弱了,还是直接贴代码吧。。。#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <c...

2015-08-10 22:52:00 113

转载 poj 2796 分类: poj 2015-0...

如果确定了 ax 为最小值,那么包含 ax 并且以 ax 为最小值的区间个数是 O(N2) 的。因为序列中所有数的值非负,所以只需要考虑满足以上条件的最长区间即可。而包含 ax 并且以 ax 为最小值的最长区间可以用两次单调队列求出,最后对每个 ax 计算答案即可。#include <cstdio>#include <cstdl...

2015-08-10 15:38:00 111

转载 poj 1821 分类: poj 2015-0...

把转移方程优化一下,改变决策顺序就行了。。。#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <string>#include <...

2015-08-10 15:37:00 75

转载 codeforces 366D 分类: codeforces ...

很有趣的题啊,首先要知道从 1 开始,只走一条路径到达 n 的数字一定是连续的区间,先枚举确定答案 L,再通过拓扑排序 DP 计算最大的 R (DP过程中确定无向边的方向),当然我直接写了一个 SPFA 来更新 DP 值,然后就 AC 了~SPFA期望复杂度 : O(n+m)时间复杂度:O(m∗(n+m)) #include <cst...

2015-08-09 17:38:00 107

转载 hdu 3593 分类: hdu 2015-0...

终于理解树形依赖背包啦~这个树形DP的转移方程还是比较简单的。树形依赖背包的优化:设当前结点为 x,因为选取物品 x 需要强制选取物品 fa(x),所以直接令 dp(x)=dp(fa(x)) 并限制背包空间,然后处理 dp(son(x)),最后强制加入物品 x,即用 dp(x)+g(x)来更新 dp(fa(x)) 即可。这样就在强制选取...

2015-08-09 16:43:00 83

转载 poj 3134 分类: poj 2015-0...

喜闻乐见的迭代加深搜索快速幂最多只需要 2∗logX 次就能得到想要的任何数然而这道题的答案会更小,迭代加深搜索显然是可以承受的。剪枝优化: 如果剩余的操作次数都用来将最大数与最大数相乘, 得到的结果仍然比希望得到的数小,那么这个状态就一定是不可行的#include <cstdio>#include <cstdlib...

2015-08-08 23:42:00 119

转载 poj 1186 分类: poj 2015-0...

似乎是NOI 2001的题目,感觉很有意思。。。Meet in the Middle (中途相遇法)看起来O(MN)不可做,方程移项有真相:k1∗xp11+k2∗xp22+k3∗xp33=−(k4∗xp44+k5∗xp55+k6∗xp66)分别计算 :k1∗xp11+k2∗xp22+k3∗xp33=W 的解数fL(W)k4∗xp44+k...

2015-08-08 22:28:00 55

转载 poj 1379 分类: poj templa...

传说正解是V图,想想都觉得难写。。。模拟退火~ 随机取几个点,将温度设置为随机范围,然后随机爬山算法即可。。。如果参数设置得比较优,就可以在精度范围内取得最优解。。。所以暂时就不学V图了(反正写不出)注意如果用G++交题的话,要用 %f 输出。。。我以后还是用C++交题吧,虽然语法比较严格,但不像G++那样不规范。。。#incl...

2015-08-08 22:17:00 84

转载 poj 1568 分类: poj templa...

博弈搜索,Alpha−Beta 剪枝Alpha−Beta 剪枝:令 alpha = max{beta = min{alpha′}}如果在搜索的过程中,beta<=alpha,那么beta 对 alpha的值将没有贡献,对 beta 不必继续搜索。同理,如果 alpha′>=beta,那么alpha′ 对 beta的值将没有贡献,对 ...

2015-08-08 16:09:00 87

转载 codeforces 558C 分类: codeforces ...

将每个数转成二进制的形式,可以发现对每个数的操作只会使二进制数中的 ‘1’减少,而有效的目标状态一定不大于 max{a[i]}, 所以每个数能扩展出的有效状态只有 2*log max{a[i]} 种,而这个范围是非常小的。。。可以用搜索处理出每个数能扩展出的有效状态以其代价。最后枚举目标状态,更新答案即可。#include <cstd...

2015-08-08 14:15:00 183

转载 template 分类: templates ...

#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <string>#include <map>#include <vector&...

2015-08-08 13:55:00 104

转载 codeforces Round 314 div.2 分类: code...

这次比赛是用小号打的,于是现在小号比大号rating高。。。QwQA题和B题很简单不多说。C题:统计子序列中长度为3,公比为 k 的等比序列的个数。从后往前处理,分别统计满足条件长度为1,2,3的序列的个数, f(i,j)=∑f(i−1,t)|t=j∗k,实现时离散化一下就好~然而,当时只判断了 a[i]*k<=a[max] ,而没...

2015-08-08 13:52:00 79

转载 bzoj 1999 分类: bzoj noip...

树网的核 加强版,好题~可以证明,如果存在多条直径,选取任意一条直径都是等价的。证明:如图,考虑两条直径 AB, CD,其中它们的重合部分为 EF A B \ / \ ...

2015-08-07 23:37:00 91

转载 bzoj 2821 分类: bzoj 2015...

因为强制在线,所以无法用莫队算法。。。将序列分块,设块的大小为 X。首先预处理出第 i 块到第 j 块的答案,复杂度O(N2X)。然后对于每个询问,我们对整块以外的数重新计算对答案的贡献即可。 时间复杂度 O(NX∗logN)根据基本不等式,每块的大小为 N/logN−−−−−−−√。时间复杂度:O(M∗N∗logN−−−−−−−√)...

2015-08-07 18:38:00 123

转载 bzoj 2743 分类: bzoj 2015...

这道题的方法虽然应用不广,但很有意思。主要是维护起始点固定时,每个结束点的答案每个点记录下一个与它颜色相同的点的位置,记为next[]。首先对于所有首次出现的点 x,将 next[x] ~ n 的答案都增加 1 然后就得到了当起始点为1时,每个结束点的答案。如果起始点pos向右移动,next[pos]~next[next[pos]] - 1 ...

2015-08-07 18:22:00 65

转载 hdu 5068 分类: hdu 2015-0...

一道好题~用矩阵代替DP方程。对于每个房间构造一个矩阵mat,mat[i][j] = 1 或 0 表示 i 到 j 是否能到达。 然后线段树每个结点维护区间区间矩阵乘法的结果对于询问操作用矩阵乘法合并区间即可。#include <cstdio>#include <cstdlib>#include <...

2015-08-07 18:07:00 96

转载 bzoj 3211 分类: bzoj 2015...

分析一下,每个数最多只会做5次开根操作就会小于或等于1,在这之后它的值就不会改变。。。用线段树记录区间的最大值,然后只对max > 1 的区间做开根操作即可。时间复杂度:O(M∗logN+N)#include <cstdio>#include <cstdlib>#include <cstring>...

2015-08-07 18:00:00 63

转载 bzoj 2879 分类: bzoj temp...

动态加点KM这个KM模型已经比较常见了: http://blog.csdn.net/cyxhahaha/article/details/44657619构图:X 侧点为对菜品的需求,Y 侧点为厨师对菜品的供应如果让 i 厨师在倒数第 t 次制作菜品 j,花费时间为 cost(i,j)∗t记 sp=∑p[i],如果把每个厨师拆成 sp ...

2015-08-07 17:52:00 71

转载 bzoj2118 分类: bzoj 2015-...

这题很有意思哦~以最小的非零系数为模数,记为 M如果存在 W 使方程有解,W 与 W’ 在模意义下同余并且 W < W’,那么 W’也使方程有解。设 dist(i) 为满足 W mod M = i 时 W 的最小值,用最短路求出dist,然后计算答案就行了~分别统计1~Wmax,1~Wmin-1中满足 W mod M=i 的W的个数...

2015-08-07 17:15:00 95

转载 错误集锦 分类: introspect 201...

1.非void类型的函数没有返回值[Dev-C++开启“编译警告”可以防止此问题]2.hash数组使用之前没有清零3.字符串hash时,hash值存在04.平衡树的Rotate函数,先pushdown儿子后pushdown父亲。5.连接双向边时,空间没有开边数的两倍。continuing…… ...

2015-08-07 16:44:00 78

转载 bzoj2127 分类: bzoj templ...

最小割,差异代价模型。#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#include <iostream>#include <algorithm>const int maxn ...

2015-08-07 16:33:00 58

转载 NOI 2015 分类: noi 2015-0...

我只会做送分题。。。Day1T1 离散化+并查集 T2 树链剖分,线段树维护区间内元素个数Day2 T1 Huffman树,Huffman树是严格k叉树是比较好处理的,所以加入一些权值为0的点使得 点数 mod (k - 1) = 1#include <cstdio>#include <cstdlib>#...

2015-08-06 22:22:00 125

转载 QTREE3 分类: templates sp...

树链剖分,线段树维护区间内最近黑点。写起来很爽。。。#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <vector>#incl...

2015-08-06 22:09:00 59

转载 bzoj 1036 [LCT version] 分类: templat...

LCT。单个操作时间复杂度O(logN),然而常数巨大。杨哲《QTREE解法的一些研究》 黄志翱《浅谈动态树的相关问题及简单拓展》 #include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include &l...

2015-08-06 22:05:00 84

转载 SPOJ - UNTITLE1 分类: spoj ...

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22254You are given a sequence of N integers A1, A2 .. AN. (-10000 <= Ai <= 10000, N <= 50000)Let Si denote the...

2015-08-06 17:40:00 136

转载 bzoj 1030 分类: bzoj temp...

AC自动机模板#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <string>#include <map>#includ...

2015-08-06 17:34:00 60

转载 NOIP-字符串 分类: uva bzoj ...

LA 4670 AC自动机void pattern(){ memset(count, 0, sizeof(count)); int sl = strlen(str); TrieNode *now = root; for(int i = 0; i < sl; i++) { now = now...

2015-08-06 17:30:00 81

转载 最大权闭合子图 分类: bzoj poj ...

参考论文:胡伯涛《最小割模型在信息学竞赛中的应用》闭合子图的定义: 定义一个有向图 G=(V,E) 的闭合图是该有向图的一个点集,且该点集的所有出边指向的点属于该点集,即闭合图内的任意点的任意后继也一定在闭合图中。如何求解最大权闭合子图? 用最小割来解决。题目:poj2987bzoj1497hdu3879poj29...

2015-08-06 16:54:00 137

转载 NOIP-贪心,递推,枚举,模拟 分类: noip ...

bzoj2241枚举矩形的长和宽,判断是否可行。时间复杂度:O((n*m)^3) 剪枝:1.最优化剪枝 2.如果矩形面积不能整除地图点权之和,则直接判断不可行。const int maxn = 105, maxm = 105;int n, m, sum, ans;int map[maxn][maxm];int tmp[maxn][maxm...

2015-08-04 08:31:00 133

转载 poj3093 分类: poj 2015-07...

枚举最终无法选取的最小物品,那么显然比这个物品代价小的物品都必须要选。 对于比这个物品代价大的物品,DP计算方案数即可。至于物品价值相同的根据排序之后的顺序视为不同就可以了。设 dp(i,j) 表示选取i~n个物品,花费j元的方案数,dp(n+1,0)=1,dp(i,j)=dp(i+1,j)+dp(i+1,j−c[i])假设此时无法选取的最小物品...

2015-07-20 10:50:00 95

转载 hdu4003 分类: hdu 2015-07...

很有有意思的树形DP题意:给一棵n个结点的树, 结点编号为1~n, 每条边都有长度. 有k个机器人从S点出发,问让机器人遍历所有边,最少路程和是多少?1<= n <=10000, 1 <= S <= n, 1 <= k <= 10如果让一个机器人从根出发,遍历所有树之后再回到根, 那么花费一定是...

2015-07-20 10:37:00 141

转载 poj1155 分类: poj 2015-07...

树形背包#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <string>#include <map>#include &...

2015-07-20 10:24:00 64

转载 poj2486 分类: poj 2015-07...

一颗树,n个点,每个点上有一个权值,求从1出发,最多走k步,遍历到的点的最大权值和 (每个点权对权值和最多只能贡献一次)(1 <= n <= 100, 0 <= k <= 200)f(i,j,k) 在 i 的子树内走 j 步回到 i 点(k=0)/不回到 i 点(k=1)的最大收益然后DP即可,时间复杂度 O(n∗k2...

2015-07-20 10:21:00 89

转载 zoj2112 分类: templates z...

树状数组套主席树好像没有什么特别的地方,就是要注意卡空间。先处理出初始序列的主席树 O(N∗log(N+M)) 然后用树状数组记录修改 O(M∗logN∗log(N+M))时间复杂度/空间复杂度: O((N+M∗logN)∗log(N+M))#include <cstdio>#include <cstdlib...

2015-07-20 10:14:00 96

转载 poj 3974 分类: poj templa...

Manacher算法, 用来解决 最长回文子串 一类问题,俗称马拉车算法,时间复杂度 O(n)#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>const i...

2015-07-05 22:24:00 66

转载 bzoj 1004 分类: bzoj 2015...

大神的题解无限仰慕中。。。看来我还并不会 polya 定理。#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define REP(i...

2015-06-29 21:31:00 42

转载 codeforces #310 div2 D 分类: codeforc...

如果 Lj+1−Rj<=ai<=Rj+1−Lj,那么就可以在第 j 个小岛和第 j+1 个小岛之间建一座长度为 ai 的桥梁,当然,每个桥梁只能使用一次。很明显可以想到二分图匹配,X 侧点表示相邻小岛之间的连线,Y 侧点表示桥梁,Lj+1−Rj<=ai<=Rj+1−Lj⟹G(j,i)=true。然而复杂度是 O(n∗...

2015-06-29 20:03:00 115

空空如也

空空如也

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

TA关注的人

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