- 博客(19)
- 收藏
- 关注
原创 KMP算法<坑已挖>
按理说KMP算法我早就会了应该早点写这个blog的QAQ古人告诉我,凡是你5分钟讲不明白的算法,那就代表你自己也不明白这个算法。 KMP算法,其实自己也是YY过的,然而因为自己并没有发现字符串匹配的规律,所以吧, 还是不要立这个flag比较好。 我看着各种早就会后缀自动机的神犇留下了悔恨的泪水QAQ字符串匹配: 哈希? 嗯……维护一个前缀哈希值的确是可取的。 KMP算法是基于暴力匹配太差
2016-05-30 00:24:24 430
原创 差分约束<基础题练习><我是图论渣TAT>
今天有位神犇问我差分约束那道题怎么做QAQ 然而我这么弱怎么可能会那道题QAQ 所以先来介绍下什么是差分约束:最短路: dis[v] <= dis[x] + w(x,v); 那么我们考虑: 如果有一些约束,形如: b−a<=k1b - a <= k_1 c−b<=k2c - b <= k_2 c−a<=k3c - a <= k_3 求c - a的最大值. 那么怎么做呢? 考虑
2016-05-29 23:17:54 335
原创 最小费用最大流<模板大法好QAQ>
先贴一个神犇送我的模板QAQbool bfs() // 求最短路,并且查看是否存在可增广路 { Rep_0(i,N)dis[i] = inf; //初始化费用 int h,t; dis[q[h = t = 1] = S] = 0,inq[S] = 1,flw[S] = inf; while(h <= t) { int x = q[h ++]
2016-05-27 11:00:29 341
原创 数据结构[刷水]
1.POJ The merchant 给定一棵树,每个点有一个点权 每次询问(u,v),求从u到v的路径上,a点权值-b点权值最大 要求a点比b点更靠近(或者等于)v 1 ≤ N, wi, Q ≤ 50000 时限3秒 题解:树链剖分,线段树维护最大最小值,以及当前区间答案。 2.HDU Monkey King 有n个点,每个点有一个权值,有m个操作 每次操作,询问u和v所在联通
2016-05-25 14:04:07 679
原创 BZOJ2733 永无乡
题意: 给定n个点和它们的排名,支持两种操作: 1.连接两个点 2.询问某个点所在的联通块内排名第k大的是哪个点。 <脑洞第三个操作:删除两个点的连边> 首先被剧透是线段树的合并。 我仔细想了想这东西应该是很难写的。 hzt:就两行你快去写! QAQ 然后我仔细想了想大概这样: 对于每个联通块开一个线段树,某个线段树的某段区间[l,r]意味着排名在[l,r]之间的节点信息。 也
2016-05-23 20:11:43 381
原创 随时记录灵感——DP相关
今天下午记录的灵感因为没有保存所以消失了QAQ 那就重写一遍吧。 首先题目是这样的: 有n个项目,每个项目都有m种东西可选,每个项目必须选一个东西。 对于某个项目i,第j种东西: 有其性能wijw_{ij}和花费cijc_{ij} 现在求 max(min(wij)∑cij)max(\frac {min(w_ {ij})}{\sum c_{ij}}) 设dp[i][j]表示到第i个选到
2016-05-14 00:20:27 425
原创 vijos || bzoj 划船记
vijos1283 佳佳的魔杖 佳佳得到的这些树枝在属性上完全相同。每一个树枝都有n段(用1~n编号),给定了每段的长度L[i]和每段的魔力值M[i]。单独的一段是不可以从中间切开的,你可以做的就是选择一段或连续的几段,把它们作为一个整体切下来,再用来制作魔杖。但是一根魔杖的长度不能太长——不能大于给定的值hi;也不能太短——不能小于给定的值lo。魔杖有一个奇怪的要求:如果某一根魔杖的制作材
2016-05-13 11:04:07 457
原创 vijos + Bzoj划水记(二)
Prog1. ZJOI2014 力 背(吐)景(槽): 这题我真的是醉了…… 不懂小学数学简直是不能够啊…… 题意: Fj=∑i<jqiqj(i−j)2−∑i>jqiqj(i−j)2F_j = \sum _{i < j}\frac {q_iq_j} {(i - j) ^ 2} - \sum _{i > j}\frac {q_iq_j}{{(i - j) ^ 2}} 又有: Ei=Fi
2016-05-12 17:10:55 302
原创 快速傅里叶变换
快速傅里叶变换(FFT),常用于解答多项式乘法相关内容。 背景故事: 在我们平时计算多项式乘法的时候,我们把第一个多项式的每一项都和第二个多项式的每一项相乘,复杂度为O(n ^ 2),此时我们所使用的表示法就是系数表示法。
2016-05-10 21:02:03 2485 1
原创 01背包第k大
嗯……这道题其实还是挺简单的…… 然后我就不会做了QAQ 实际上就是设 f[i][j][k]为第i个物品,容量为j,第k个背包的价值。 那么则有f[i][j][p] = f[i - 1][j - w[i]][1…K] + val[i]与f[i - 1][j][1…K]的第p个 然后因为我懒了一下…… 我想: 诶?询问最大值? 前k大? 然后搞了个堆下来…… 然后就TLE了TAT
2016-05-06 12:09:45 319
原创 vijos 1243 ——DP
首先这是一个DP,并且是一个数据加强版的DP。 题意: 在经过一段时间的经营后,dd_engi的OI商店不满足于从别的供货商那里购买产品放上货架,而要开始自己生产产品了!产品的生产需要M个步骤,每一个步骤都可以在N台机器中的任何一台完成,但生产的步骤必须严格按顺序执行。由于这N台机器的性能不同,它们完成每一个步骤的所需时间也不同。机器i完成第j个步骤的时间为T[i,j]。把半成品从一台机器上搬到
2016-05-05 19:42:26 612
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人