自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kewowlo

这游戏不好玩

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

原创 Mark website

CSS : 基础:http://learn.shayhowe.com/html-css/ 布局:http://zh.learnlayout.com/

2015-03-16 18:18:19 616

原创 基础图论算法导引

ACM中常用图论算法 1. 拓扑排序 ->  拓扑排序的原理及其实现 2. 最短路径算法 -> 最短路算法总结 差分约束系统 -> 差分约束 前k短路 -> 前K短路径问题 3. 最小生成树问题扩展 -> 最​小​生​成​树​问​题​的​拓​展  最优比率生成树 -> 最优比率生成树  最小k度限制生成树 -> IOI2004国家集训队论文,由汪汀所著(网盘

2014-08-18 19:14:34 1495 2

原创 图论小知识

/******************************************* 邻接表 储存图 空间复杂度O(m+n) 时间复杂度O(m) 优点: 缺点: ********************************************/ #include #define MAXN 1111 #define MAXM 1111 int head[MA

2014-07-04 21:36:16 994

原创 【树的分治】 HDU 4670 Cube number on a tree

点击打开链接 可将点权转化为三进制 树的分治:根据子树的节点数最小 求出树的重心 保证了复杂度尽量小 对于重心节点 的一棵子树搜一遍得到所有到那个子结点的权值积 与已经搜过的权值积 相乘 然后计算答案 #include #include #include #include #include #include using namespace std; typedef long l

2015-12-17 22:30:50 602

原创 【博弈】 HDU 2516 取石子游戏 斐波那契博弈

点击打开链接 斐波那契博弈,类似NIM博弈 点击打开链接 //#include #include #include #include #include #include using namespace std; typedef long long LL; const int INF = 1<<30; int main() { int n; int f[123];

2015-12-09 20:19:53 475

原创 【DP】 HDU 3229 Jinyuetuan Puzzle

点击打开链接 题意: 7个键的劲乐团。给出每个键出现要敲打键盘的时间。  然后再给出K个不能同时按的状态  比如  11110000不能按那么11110100也是不能按的。。 对于单音正确的时间敲到得一分 对于长音开始的时间敲到得一分 ,最后时刻松开再得一分,期间松开的话得不到松开键的分数 求最大可得分数 最主要的是处理长音的松开的那一分。 对于短音标记为1   长音 开始

2015-11-08 21:18:29 756

原创 【搜索+状压DP】 HDU 3681 Prison Break

点击打开链接 题意:开始能量包能提供走K步的能量,从F点出发要经过每一个Y点,通过G点时能充满能量包。且不能经过D点 求最小的K。 Y+G的个数最多有15个 因为只有15个有用的点预处理出两两的距离,二分K值 状压搞一搞 #include using namespace std; typedef long long LL; typedef pair PI; char s[12

2015-11-04 21:19:28 522

原创 【DP】 HDU 3689 Infinite monkey theorem 预处理

点击打开链接 题意:一只猴子可以有n个键 可以敲m下 求能敲出目标串的概率。 思路:可以先求不能敲出目标串的概率 用 dp[i][j] 表示 敲第 i 下时, 得到 目标串  j  结尾 的概率     例: 目标串 word     wcwor   这是dp[ 5 ][ 3 ] 的状态。。 如果目标串是 aaaaabaaaa   这样的   就会转移到奇怪的地方。。

2015-10-24 22:18:18 728

原创 【DP】 HDU 4427 Math Magic

点击打开链接 题意:求K 个数的数列  ,和为N , LCM 为M 的个数 因为M 的 除数很少 最多10 个  先处理出来就可以O(K*N*10*10) 处理了 #include using namespace std; typedef long long LL; #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 #pragm

2015-10-12 21:08:48 448

原创 【贪心】 ZOJ 3908 Number Game

点击打开链接 题意:给出N 个数 每次可以取两个数  和不超过k ,价值为两个数的积,至多可以取m次,求价值最大 用mulitset 储存 数,然后从最大的开始取 找到符合的最大的数,然后删去这两个数 最后排序加一下 //#include //using namespace std; //#define lson l, m, rt<<1 //#define rson m+1, r

2015-10-11 20:44:36 791 2

原创 【搜索】 HDU 4770 Lights Against Dudely

点击打开链接 题意:图中有最多有15个点 ,可以在点位置放置灯  (一个点只能放一个灯) 灯可以照亮(i,j) (i-1,j) (i,j+1) 其中(i-1,j),(i,j+1) 可以超出地图且不能为'#' 其中一个灯任意可以转动 求放置灯最少的数量。 思路: 状态压缩 枚举转动的点 再判断是否可覆盖所有点 #include #include #include #i

2015-10-08 22:38:05 457

原创 【DP】 FZU 2204 7 成环

点击打开链接 dp[][][][]  存方法数 第一维 存第一个放黑球还是白球 第二维 存第i个球 第三维 存第i个球是黑还是白 第四维 存第i个球前连续几个球是相同颜色 #include #include #include #include #include #include #include using namespace std; #include #includ

2015-10-07 22:26:31 533

原创 【基础数学】 HDU 4465 Candy Log搞

点击打开链接 题意:自己读 公式 ∑i=0n(p(n+1)∗(1−p)(n+1)∗C(n)(2n−1)∗i+(1−p)(n+1)∗p(n+1)∗C(n)(2n−1)∗i)\sum_{i=0}^n \left(p^\left(n+1\right)*(1-p)^\left(n+1\right)*C{^\left(n\right)_\left(2n-1\right)}*i+(1-p)^\left(

2015-10-03 21:47:48 530

原创 【搜索】 HDU 4474 Yet Another Multiple Problem

点击打开链接 题意 : 求一个最小的n的倍数 ans,使得ans不包括 输入的几个数字 ,不存在输出 -1 思路 :对于 两个数 A , B   存在  A > B  且 A%n = B%n   则  (A*10 + K ) %n  = (B*10 + K ) %n  然而 A*10 + K 仍然 大于 B*10 + K 所以就不需要搜 A 了  ,判断 余数 是否出现过 在剪枝 ans

2015-10-03 20:27:01 432

原创 【LCA】HDU 5452Minimum Cut

点击打开链接 题意:给出一棵树 再额外的几条边 求最少删去多少条边(其中必须要一条树上的点)使得点被割开 思路先枚举 删去树上的边 以及还需删去多少边    对于额外的边 u , v    他们的lca 为 fa      删去(fa -> u) 与 (v - > fa ) 之间的点都需要删去 u v 这条边 所以需要 +1  但是fa 以及 以上 就不需要加了  就 减去

2015-09-22 21:50:22 1001

原创 【递推】 HDU 5459 Jesus Is Here

点击打开链接 题意 :求两两之间的下标差和 设  numc [ i ]  为该段 c的数量 addc [ i ] 为该段 所有c的 下标和 (从0 开始 len [ i ] 为该段 长度 ans[ i ] 为答案 addc[i]  因为i-1段前面的c每个增加的len[i-2] 的长度  所以为 addc[ i-2 ]  +addc[ i - 1 ]  +  len[ i-

2015-09-20 20:27:24 402

原创 【回文串】Codeforces 17E Palisection

点击打开链接 题意:计算相交的回文子串对数 先计算出总的数量 减去 不相交的回文子串的对数 #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #inclu

2015-09-15 19:00:02 778

原创 【Splay】 HDU 1890 Robotic Sort 翻转

点击打开链接 输入N个数 输出N个数 每次输出 P=值最小的位置  , 然后翻转 i-P 间的数 翻转操作用lazy标记 #include #include #include #include #include #include #include using namespace std; #include #include #include #include #in

2015-09-07 21:56:29 466

原创 【树链剖分】 HDU 4729 An Easy Problem for Elfness 二分

点击打开链接 给出一棵树 每条边有容量 新建一条边(初始值为1) 需要A$  容量增加1 需要B$ 询问  预算有K 使得S->T的流量最大 分三种情况 1. AT路径上最小值+K/A; 2. A > B时 新建一条边再扩容该条边   3. 扩容 S->T路径上的边 使得最小值最大 1和2可以很快的算出 对于第3种情况我们可以二分答案 求解 #include #includ

2015-09-03 21:32:14 398

原创 【后缀数组】 POJ 2774 Long Long Message 两个字符串的最长公共子串长度

点击打开链接 两串相接 先判断sa[i]与sa[i-1]属于不同串 再取height[i] 的最值 #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #inclu

2015-09-02 19:17:35 456

原创 【后缀数组】 POJ 3882 Stammering Aliens 可重叠出现k次字符串

点击打开链接 题意:m表示至少出现m次的字符串,要求最长,并输出最后一次的子串的位置 height [ i ] 表示 sa [ i ] 与 sa [ i -1 ] 的公共长度 二分最长串的长度 如果找到连续的k-1个 height 大于等于 长度len 即存在长度为len的串 这时候记录下最靠右边的串的位置 (需要特判 m==1 的时候 #include #include #in

2015-09-01 21:19:35 771

原创 【Splay】 HDU 1754 I Hate It

点击打开链接 区间最值模板  需要在两端设置两个结点( 查询 [ l, r ] 时需 将 l-1 转到根结点,r+1转到l-1的儿子结点 这时 r+1的左儿子就是答案   #include #include #include #include #include #include #include using namespace std; #include #include

2015-08-31 20:37:50 602

原创 【SPLAY】 [HNOI2002] 营业额统计 模板

点击打开链接 模板 #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #include #pragma comment(linker, "/STACK:10240

2015-08-31 16:13:00 498

原创 【SBT】 POJ 3481 Double Queue

点击打开链接 1 表示插入 点 2表示求最大值的点标 并删除 3表示求最小值的点标 并删除 0表示结束 模板题。增加了一个val 表示为输出的值 #include #include #include #include #include #include #include using namespace std; #include #include #include

2015-08-31 13:51:57 499

原创 【矩阵快速幂】 HDU 5411 CRB and Puzzle 等比

点击打开链接 题意显然是 求 A+A^2+A^3+....+A^m 这就是经典题目 矩阵乘法十种经典题目  递归解决 后半部分提取 A^(m/2) 该题再特判下 m==1的时候 #include using namespace std; typedef long long LL; const int mod=2015; struct mat { int s[55][55];

2015-08-21 10:53:18 542

原创 【瞎搞】 HDU 5416 CRB and Tree

点击打开链接 查询才10个  X^Y=S  && X^S=Y   X^Y^X=Y DFS处理出每个点到 节点1 的异或值 并统计每个异或值的数量 对于查询的值 S  枚举每个点的到根节点的异或值 可以知道另一个需要的异或值     先前处理了异或值的个数 还要注意S=0的时候 #include #include #include #include #include #incl

2015-08-20 19:30:24 485

原创 【树链剖分】 POJ 2763 Housewife Wind 边权

点击打开链接 题意: 操作0 X :求 当前位置到X 的长度 操作1 X Y :将第X条边长度更改为Y #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #pr

2015-08-19 09:40:08 551

原创 【树状数组】 HDU 5372 Segment Game

点击打开链接 题意: 两种操作 :a,b a=0:插入一个区间 长度为num 区间范围为[b,b+num] ( num表示为 这条区间的编号  第一个插入的 num=1,第二个插入的 num = 2 a=1:删除第b个区间 插入一个线段 要输出 在这个区间内的区间数量 维护线段左右两端的位置数量   ( 输出 大于等于左端点的数量 减去  大于右端点的数量) 所有的区间分成6种 容斥

2015-08-11 21:48:50 444

原创 【数据结构】 CF 547B Mike and Feet

点击打开链接 长度为n的一个数列 定义 一个区间内的 最小的值为 这个区间的strength  求长度为 1-n 的区间 最大的strength 先求出每个位置左边/右边 的比它小的值的位置 这样在 L+1  R-1 区间内这个位置是最小值 然而 区间[len]的值是小于等于区间[len-1]  即可以推出 #include using namespace std; typ

2015-08-07 21:12:12 872

原创 【瞎搞】 HDU 5358 First One

点击打开链接 根据| log2 a +1 | =k    枚举k得到 区间 [2^(k-1), 2^k-1] ;  k =[0,34] 再枚举左端 i: 对于一个i 找到一个区间 [l, r]满足[ 2^(k-1),  2^k-1] 然后就加起来 #include #include #include #include #include #include #include us

2015-08-06 21:51:26 461

原创 【分块】UVA 12003 Array Transformer 水题

点击打开链接 比较水的分快,还不会爆LL #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #include typedef long long LL; co

2015-08-04 09:36:03 528

原创 【划分树】 HDU 3473 Minimum Sum 中位数

点击打开链接 题意:在给出有N个数的数列 然后Q个询问 询问  [ L,R ]    要那个公式的值最小 显然是这个区间的中位数嘛 然后就要处理出 小于中位数的数的和 大于中位数的数的和 对于划分树来说 每一层的区间上的数build后,其相对位置都不会变化滴 所以在build 的时候统计下分到左边的数的前缀和 查询的时候统计小于中位数的数的和 {注释那一块} #inclu

2015-08-03 14:49:22 583

原创 【主席树】 HDU 4417 Super Mario 区间内小于某值的个数

点击打开链接 查询时对于高度H二分hash值得到k值,查询1-k区间内的个数 #include #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #incl

2015-07-29 19:25:56 1305

原创 【主席树】 ZOJ 2112 Dynamic Rankings 区间第k小值

点击打开链接 题解:Empress #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include using namespace std; #include #include #in

2015-07-29 16:18:44 517

原创 【线段树】 HDU 5316 Magician

点击打开链接 题意:求一个区间内的最大的子序列的和:要求必须下标奇偶奇偶。。不能出现奇奇 偶偶这样 维护好 开始为奇结束为偶 开始为奇结束为奇 开始为偶结束为偶 开始为偶结束为奇 #include #include #include #include #include #include #include #include using namespace std; #i

2015-07-28 23:09:13 556

原创 【搜索】 HDU 5323 Solve this interesting problem

点击打开链接 用线段树方式建树 [ 0, n] 已知[ l, r] 结点 求n 若 建一个[0, 2*r] 的线段树  这是的总点数的奇的,(左子树!=右子树 [0, r]  在左子树里 则n最大为2*r 若 建一个[0, 2*r+1] 的线段树 (左子树==右子树 [0, r]  在左子树里 这时则 [0, r] 就可以建树 所以搜的时候超出2*r 就直接return  #inc

2015-07-28 23:01:07 665

原创 【染色】 HDU 5313 Bipartite Graph

点击打开链接 给出一个二分图,求添加最多的边数 变成一个完全二分图 若两个点集个数越接近,边的数量越大 染色联通块得到k组两个点集的数量 然后用bitset搞= = #include #include #include #include #include #include #include #include using namespace std; #include #

2015-07-26 19:21:35 565

原创 【瞎搞】 HDU 5312 Sequence

点击打开链接 给出一个m 求最少由几个 3*n*(n-1)+1的数组成 3*n*(n-1)+1  == 6*(n*(n-1)/2)+1 定理:   至多三个三角形数( n*(n-1)/2 ) 可以构成任意自然数     对于一个数m 假设由k个题目所述的数组成 即6*t1*(t1-1)/2+1  +6*t2*(t2-1)/2+1  +......6*tk*(tk-1)/2+

2015-07-26 18:48:41 435

原创 【网络流+最短路】 HDU 5294 Tricks Device

点击打开链接 最短路求出到每个点的最小值以及边数 枚举下能到达终点的点的边数num[i] 取个最小值 +1  然后减去m就是第二个输出的数 对于原来的图满足最短路的边建上一条边跑网络流 就得到最小割= = 因为有重边所以网络流的边的容量为该边最小权值的数量 #include #include #include #include #include #include us

2015-07-21 19:09:03 553

原创 【线段树】 HDU 5289 Assignment

点击打开链接 对于第i个数,最多有 i个以i为R端的区间可以选 前面维护好一个L值 表示在L之前都不满足条件的位置 然后对于L-R二分 #include #include #include #include #include #include using namespace std; #include typedef long long LL; using namesp

2015-07-21 19:03:56 598

空空如也

空空如也

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

TA关注的人

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