04 2016 档案

摘要:爱像一阵风吹完它就走这样的节奏谁都无可奈何没有你以后我灵魂失控黑云在降落我被它拖着走静静悄悄默默离开陷入了危险边缘 baby~我的世界已狂风暴雨wu~爱情来的太快就像龙卷风离不开暴风圈来不及逃我不能再想我不我不我不能爱情走的太快就像龙卷风不能承受我已无处可躲我不要再想我不我不我不要再想你不知不觉你已 阅读全文
posted @ 2016-04-30 11:06 _Vertical 阅读(198) 评论(1) 推荐(0)
摘要:首先我们要知道pick公式 设二维平面内任意多边形面积为S 设多边形内部整点数为a 设多边形边界的整点数为b 则满足S=a+b/2-1 变形得a=S-b/2+1 由期望的线性性质我们把问题转化为 1、求凸包面积的期望 2、求凸包边界整点数的期望 首先我们考虑如何算面积,对于任意凸多边形,我们可以以原 阅读全文
posted @ 2016-04-30 10:50 _Vertical 阅读(220) 评论(0) 推荐(0)
摘要:昨天晚上做了一发HNOI,感觉有很多新的idea 于是就选了一个出成题目辣 我们考虑暴力 暴力很明显是把这个图A<=D,B<=E的形态搞出来 之后处理相关的询问 这样我们会很容易得到正解: 我们对边按A排序之后分块,对于每一块相关的询问我们单独处理 不难发现之前块的边的A一定小于当前询问的A 那么我 阅读全文
posted @ 2016-04-29 10:13 _Vertical 阅读(160) 评论(0) 推荐(0)
摘要:啦啦啦,今天的考试题 不过原来考试题的n<=10w 由于我有更好的做法,所以我就改成20亿辣 本来先说一说考试题的正解做法的 但是复杂度是O(nlogm),实在是太渣了 所以还是说一说我的做法吧 首先假定都会写裸的DP 我们考虑A,B,如果B不能转移到A,当且仅当A不等于B且A%B=0 很容易发现当 阅读全文
posted @ 2016-04-28 17:57 _Vertical 阅读(384) 评论(0) 推荐(0)
摘要:疯狂的魔法树 一个各种操作大杂烩的鬼畜数据结构题目 首先我们注意到树的形态是半随机的 我们可以树分块,对树分成若干个块 对于每个块我们维护一个add标记表示增量 维护一个vis标记表示覆盖量 注意标记的下放和两个标记之间的处理 之后我们对于每个块我们排序,并维护块内的有序化 这样对于每个查询如果涉及 阅读全文
posted @ 2016-04-27 20:50 _Vertical 阅读(297) 评论(0) 推荐(1)
摘要:阳光下的泡沫 是彩色的就像被骗的我 是幸福的追究什么对错 你的谎言 基于你还爱我美丽的泡沫 虽然一刹花火你所有承诺 虽然都太脆弱但爱像泡沫 如果能够看破 有什么难过早该知道泡沫 一触就破就像已伤的心 不胜折磨也不是谁的错 谎言再多 基于你还爱我美丽的泡沫 虽然一刹花火你所有承诺 虽然都太脆弱爱本是泡 阅读全文
posted @ 2016-04-27 17:39 _Vertical 阅读(189) 评论(0) 推荐(0)
摘要:疯狂的重心 话说做过幻想乡战略游戏的人应该很容易切掉这道题目吧 我们考虑一棵树如果添加了一个叶子,那么其重心最多向叶子方向移动1的距离 而是否移动我们只需要记录子树中有多少个点就可以判断啦 也就是说这个叶子对于时间复杂度的贡献是1 那么我们考虑每次在x-y上添加一条边,等于将x所在的树和y所在的树合 阅读全文
posted @ 2016-04-27 12:08 _Vertical 阅读(301) 评论(0) 推荐(0)
摘要:疯狂的斐波那契 学习了一些奇怪的东西之后出的题目 最外层要模p是显然的,然而内层并不能模p 那么模什么呢,显然是模斐波那契的循环节 那么我们可以一层层的求出每层的斐波那契循环节 之后在从内向外用矩阵乘法计算即可 至于如何求斐波那契的最小循环节,参见本博客的Fib求循环节那篇文章 当然这个题可以只求循 阅读全文
posted @ 2016-04-27 08:22 _Vertical 阅读(373) 评论(1) 推荐(0)
摘要:DAY -1: 省选前集训因为某些事情感觉心情和状态异常的糟糕 坐在窗户上吹了半个小时的冷风之后觉得回家休息一段时间 (反正我家在保定,大不了我省选的时候直接去河北大学就好辣) 在家里颓了三天吧,想清楚了很多事情,也想不清楚了很多事情 总是看不懂自己到底想要什么,到现在也不懂自己想要什么 回家的时候 阅读全文
posted @ 2016-04-26 19:02 _Vertical 阅读(1185) 评论(3) 推荐(3)
摘要:黑树白 首先如果不是强制在线,这个题用莫队+树状数组就可以在O(n*sqrt(n)*log(n))的时间内搞定 如果没有修改操作,可以直接上主席树就可以辣 我们考虑修改操作,某一个修改操作对于某一个查询操作的贡献我们显然可以O(1)的计算 那么我们不妨对操作分块 将修改操作用一个数组存下来 每次询问 阅读全文
posted @ 2016-04-26 14:08 _Vertical 阅读(220) 评论(0) 推荐(0)
摘要:省选成功成为河北B队队长QAQ 真是忧桑 所以在cojs上出了一套鬼畜的关于树的套题 黑白树: 我们先不考虑R操作 设x是u的祖先,那么fa(x)的贡献显然是 fa(x)*(sz(fa(x))-sz(x)) 之后我们对于这个求和就是答案辣 然而这一脸不可做,我们化简一下,考虑每个sz(x)的贡献 s 阅读全文
posted @ 2016-04-25 15:30 _Vertical 阅读(499) 评论(0) 推荐(0)
摘要:第一题很简单嘛,就是裸的动态树分治嘛 对于每一层的重心维护子树路径的信息和子树到上一层重心的点的信息 空间复杂度O(nlogn) 对于每一层我们按dis排序,之后记录军队数量的前缀和 查询的时候我们只需要在这一层二分既可以啦 感觉还是非常的easy呢 时间复杂度O(nlog^2n+mlog^2n) 阅读全文
posted @ 2016-04-21 11:08 _Vertical 阅读(403) 评论(0) 推荐(1)
摘要:他留给你是背影 关于爱情只字不提 害你哭红了眼睛 他把谎言说的竟然那么动听 他不止一次骗了你 不值得你再为他伤心 他不懂你的心假装冷静 他不懂爱情把它当游戏 他不懂表明相爱这件事 除了对不起就只剩叹息 他不懂你的心为何哭泣 窒息到快要不能呼吸 喔喔 他不懂你的心 他把回忆留给你 连同忧伤强加给你 对 阅读全文
posted @ 2016-04-21 08:38 _Vertical 阅读(490) 评论(4) 推荐(0)
摘要:为什么SDOI省选一年考两次容斥原理? 我们很容易发现>=k个相等时很好计算的 但是我们要求恰好k个,那么我们容斥即可 至于计算>=k个相等,首先我们枚举相等位置,对每个串对应位置做一遍hash就可以了 阅读全文
posted @ 2016-04-14 21:39 _Vertical 阅读(197) 评论(0) 推荐(0)
摘要:如果没有限制,答案直接用隔板法C(m-1,n-1) 对于>=x的限制,我们直接在对应位置先放上x-1即可,即m=m-(x-1) 对于<=x的限制,由于限制很小我们可以利用容斥原理将它转化为上面的>=x的限制 即减去1个不满足的 加上2个不满足的 减去3个不满足的 …… 之后就是组合数的计算,对于一个 阅读全文
posted @ 2016-04-14 21:33 _Vertical 阅读(269) 评论(0) 推荐(0)
摘要:首先对于查询操作就是裸的COT QAQ 在树上DFS建出主席树就可以了 对于连接操作,我们发现并没有删除 所以我们可以进行启发式合并,每次将小的树拍扁插入大的树里并重构即可 写完了之后第一个和第二个点迷のRE 然后又重新写了一遍就A了(并不知道为什么,难道第一遍写挫了? 阅读全文
posted @ 2016-04-14 21:24 _Vertical 阅读(195) 评论(0) 推荐(0)
摘要:一大堆边界一开始并不知道,胡乱判了几个之后一直WA 无奈之下只好去下载了数据,然后就疯狂判各种奇怪的边界了 刨去边界问题 首先我们考虑a=1的情况 x1+k*b=t(mod p) ex_gcd即可解 考虑a>1的情况 令S=X+b/(a-1) 原式就变成了一个等比数列 即S1*a^k=(t+b/(a 阅读全文
posted @ 2016-04-14 21:21 _Vertical 阅读(341) 评论(0) 推荐(0)
摘要:首先直径是很好求的,先以任意点为根DFS求出最远点,再以最远点为根求出第二个点 两个点之间的距离即为直径 显然对于第二问,答案是直径上的某一段,且满足不可向左右扩展出跟直径等长的路径 那么我们就可以暴力枚举直径上的点,看看它是否可以向右和向左扩展即可 阅读全文
posted @ 2016-04-14 21:13 _Vertical 阅读(192) 评论(0) 推荐(0)
摘要:样例真是坑爹,给了和没给一样 显然对于Bob而言,只需要把P全部加到流量最大的那条边上显然对他是最有利的 问题就变成了求在最大流限制下使流量最大的边最小 二分之后将每条容量大于二分值的边减小到二分值并且跑网络流判断最大流是否改变即可 阅读全文
posted @ 2016-04-14 20:33 _Vertical 阅读(157) 评论(0) 推荐(0)
摘要:做法参见JSOI 冷冻波 (话说那个题目还需要写计算几何判断是否可以打到,这个题目直接给定0,1了QAQ) 二分+最大流判定即可 阅读全文
posted @ 2016-04-14 20:30 _Vertical 阅读(197) 评论(0) 推荐(0)
摘要:分析一下样例就可以知道,求的实际上是从左下角到右上角的最长路 因为对于任意不在这个最长路的上的点,都可以通过经过最长路上的点的路径将这个点的价值减光 (可以用反证法证明) 之后就是一个非常NOIP的DP了 阅读全文
posted @ 2016-04-14 20:27 _Vertical 阅读(305) 评论(0) 推荐(0)
摘要:做法和APIO2012派遣 那道题目类似 在树上DFS,维护当前子树的小根堆 因为需要合并孩子们的信息,使用左偏树就可以了 每次弹出死亡骑士,对剩余骑士打上奖励标记 至于标记的下传和更改,只需要每次在需要遍历到这个点之前push_down就可以了 阅读全文
posted @ 2016-04-14 20:24 _Vertical 阅读(273) 评论(0) 推荐(0)
摘要:假设我们用了边权前i小的边使得图连通,那么对答案的贡献为i/m+1 又因为期望的线性性质,我们只需要求用了i条边就可以了 不妨设g(S)(i)表示用了i条边使得点集S连通的概率 设f(S)(i)表示用了i条边使得点集S没有连通的概率 设cnt(S)表示点集S内部的边的数量 我们可以知道f(S)(i) 阅读全文
posted @ 2016-04-14 20:20 _Vertical 阅读(625) 评论(0) 推荐(0)
摘要:首先我们要注意到一个事情 如果一个灯塔向左覆盖,那么比他小的某个灯塔如果向左覆盖的端点大于当前塔向左覆盖的端点,他一定向右覆盖 对于当前灯塔向右覆盖也是同理 那么我们只需要记录当前覆盖到的端点就可以完成转移了 阅读全文
posted @ 2016-04-12 11:27 _Vertical 阅读(249) 评论(0) 推荐(0)
摘要:很容易看出来这道题是求模n意义下fib数列的最小循环节 对于fib数列的最小循环节的求法,我们可以这样: 1、令n=p1^m1 * p2^m2 * p3^m3…… 2、分别计算fib数列在模p1^m1,p2^m2……意义下的最小循环节 3、模n意义下的最小循环节为2步骤各循环节的LCM 首先步骤三是 阅读全文
posted @ 2016-04-12 09:58 _Vertical 阅读(389) 评论(0) 推荐(0)
摘要:考试的时候没有注意到可以将(a,b)放在二维平面上之后旋转坐标系,使得转移变成树状数组二维偏序 这样就算我想出来了第二个转移的斜率优化也没有什么卵用啊(摔西瓜 设g(i)表示当前站在第i个水果下面且第i个水果此时并没有记分的最大得分 设f(i)表示当前站在第i个水果下面且第i个水果此时已经记分的最大 阅读全文
posted @ 2016-04-12 08:12 _Vertical 阅读(308) 评论(0) 推荐(0)
摘要:第一次打UR,打了一个半小时就弃疗了QAQ 这是我唯一一道考试的时候做出来的题目,其他两道连暴力都懒得写了 很容易发现对于每个要删除的点 我们找到左边第一个比他小的不用删除的点,右边第一个比他小的不用删除的点 中间这段区间就是对于这个点被删除时的极大区间 对于所有的区间我们取min就可以了 对于找到 阅读全文
posted @ 2016-04-12 07:56 _Vertical 阅读(410) 评论(0) 推荐(0)
摘要:好神的题目! 首先我们运用pick定理A=S-B/2+1将要求的东西转化掉 之后分离变量,我们变成了求选取凸包面积的期望和求选取凸包在边界上的点的期望 我们先考虑求选取凸包面积的期望 如何计算凸多边形的面积,我们可以原点为划分点,计算凸包上的每个向量的叉积的和 如何计算凸包边界上的点,我们可以计算凸 阅读全文
posted @ 2016-04-09 21:02 _Vertical 阅读(308) 评论(0) 推荐(0)
摘要:同BZOJ 3782 上学路线 QAQ 还比那个简单一点 把坐标(1,1)-(n,m)平移成(0,0)-(n-1,m-1) 设dp[i]表示从(1,1)出发第一次经过障碍且到达第i个障碍的方案数 首先到达第i个障碍的方案数为C(x+y,x) 之后我们考虑i是第一个经过的障碍的方案数=到达i的方案数- 阅读全文
posted @ 2016-04-09 16:36 _Vertical 阅读(193) 评论(0) 推荐(0)
摘要:模拟判定就可以了 判定字符串是否相等用hash来判断 QAQ 值得一提的是一开始我交的时候T了 结果我将递归的顺序调整了一下就A了 (并不知道为什么 阅读全文
posted @ 2016-04-09 16:13 _Vertical 阅读(148) 评论(0) 推荐(0)
摘要:捕获一只野生大水题! 首先我们知道边长为L的正三角形含有边长为1的小正三角形为L^2个 那么我们可以通过在六边形的正上,左下,右下补充正三角形使得原图形变成正三角形 然后再将补充的减去即可 阅读全文
posted @ 2016-04-09 16:10 _Vertical 阅读(220) 评论(0) 推荐(0)
摘要:因为上午没有准备够题目,结果发现写完这道题没题可写了QAQ 又因为这道题范围是100w,我写了发线段树,以为要T,上午就花了一个小时拼命卡常数 结果下午一交居然过了QAQ 我们考虑枚举L,求最大R使得[L,R]是对于当前L最大权值的区间 考虑每个点的影响 如果从L向右他是第一个,那么他会对后面产生a 阅读全文
posted @ 2016-04-09 16:07 _Vertical 阅读(186) 评论(0) 推荐(0)
摘要:shallot+向量集 混合版? 首先我们考虑每个向量的存在时间为[L,R] 那么我们知道任意一个区间在线段树上最多被分解成logn个区间 那么我们可以像shallot一样进行区间覆盖 注意到本题的查询是在凸壳上完成的,而凸壳不像shallot的线性基一样有固定的时间复杂度 但是本题的查询是可分离的 阅读全文
posted @ 2016-04-09 15:58 _Vertical 阅读(362) 评论(0) 推荐(0)
摘要:QAQ 做完禁忌 又做过文本生成器 这道题就是个水题啦 首先转移方程还是文本生成器的转移方程 但是注意到L很大,但是节点数很小 转移都是固定的,所以我们可以用AC自动机来构造转移矩阵 之后进行矩阵乘法就可以了 顺便提一句,模数是10^5,相乘会爆int 我为了省点常数自信开int,结果WA了两发QA 阅读全文
posted @ 2016-04-08 19:45 _Vertical 阅读(167) 评论(0) 推荐(0)
摘要:算得上是比较水的E题了吧,自己想了想写了写居然1A了 对于这道题,我们很容易想到对于原图的一个边双,定向后任意两点间一定可达 那么我们可以求出原图的边双并将每个边双缩成一个点 那么原图就变成了无环的无向图,也就是一片森林 之后我们考虑每个任务: 1、如果S和T处于一个边双里,显然是可行的 2、如果S 阅读全文
posted @ 2016-04-08 18:04 _Vertical 阅读(283) 评论(0) 推荐(0)
摘要:一开始写了个暴力模拟绳子的摆动轨迹 然后在Test 16 T掉了 后来%了一下别人的代码,发现需要对特殊情况进行特殊处理 首先我们考虑绳子的向右摆动,设当前位置为p,绳子当前长度为L 如果其旋转中心位置>p+L/2,那么绳子长度至少会缩短一半 假设一直这样下去,时间复杂度为log(L) 但是当旋转中 阅读全文
posted @ 2016-04-08 17:00 _Vertical 阅读(269) 评论(0) 推荐(0)
摘要:操作无论是U还是L,都会使原图形分裂成两个图形,且两个图形的操作互不影响 我们又发现由于操作点只可能在下斜线上,如果将操作按x排序 那么无论是U还是L,都会将操作序列完整分割成两半,且两个操作序列互不影响 这样我们就可以对操作进行分治,每次找到最靠前的操作,并将操作序列分割 对于U操作而言,计算其答 阅读全文
posted @ 2016-04-08 16:07 _Vertical 阅读(243) 评论(0) 推荐(0)
摘要:我们考虑n-1座桥每座桥需要的长度在一个区间[L,R]中 之后我们现在有m座桥,每个桥的长度为k 题意就是要求一个匹配方案 显然如果数据范围不大直接KM就可以了 可是20w的数据KM显然要T 所以我们考虑这是个区间问题,我们可以贪心 考虑两座桥A,B, A的区间被B的区间所包含 那么优先考虑A总比优 阅读全文
posted @ 2016-04-08 15:56 _Vertical 阅读(216) 评论(0) 推荐(0)
摘要:首先我们考虑最暴力的拆解拼凑 显然拆分掉所有的链需要 n-m 次 之后拼凑需要 n-1 次 然后由题目规定可知:只有从1出发且连续的链不用拆掉,其余的都必须拆掉(因为两个都套有娃娃的套娃不能组合) 我们只需要计算从1出发且连续的链的长度即可 设长度为L 则ans=(n-m)+(n-1)-(L-1)* 阅读全文
posted @ 2016-04-08 11:53 _Vertical 阅读(145) 评论(0) 推荐(0)
摘要:很老的题目了,很早以前学AC自动机的时候就A过一次 今天算是复习啦 我们可以把问题转化成一个给定字符串都没出现的字符串有多少个 我们建立AC自动机,设dp[i][j]表示走了i步当前在j节点上 在DP的过程中不转移单词节点即可 阅读全文
posted @ 2016-04-08 10:58 _Vertical 阅读(170) 评论(0) 推荐(0)
摘要:首先这个题目显然是要二分转换成判断可行性的 之后我们考虑DP 设f(i)表示 1->i 熟悉的子串的长度的最大值 那么对于i这个点,要么不在熟悉的子串中,要么在熟悉的子串中 所以得到 f(i)=max(f(i-1),f(j)+i-j); 其中i-j是划分的熟悉的子串的长度,要满足以下条件: 1、i- 阅读全文
posted @ 2016-04-08 10:35 _Vertical 阅读(216) 评论(0) 推荐(0)
摘要:首先我们要考虑给定一个串,如何将他划分,使得他有最多的禁忌串 我们只需要按里面出现的禁忌串们的出现的右端点排序然后贪心就可以啦 我们建出AC自动机,在AC自动机等价于走到一个包含禁忌串的节点就划分出一段 那么不妨设f(i,j)表示走了i步当前在AC自动机的j节点上 这样的DP方程跟BZOJ 1030 阅读全文
posted @ 2016-04-08 06:28 _Vertical 阅读(315) 评论(0) 推荐(0)
摘要:以前一直听说什么后缀数组height合并之类的 表示我这种后缀数组都敲不熟的蒟蒻怎么会写 但是做了做觉得还是很简单的嘛 这个题是有两问的,第一问是求LCP>=R的后缀对有多少个 这个就是AHOI2013 差异 稍微变个形啦 直接逆序建后缀自动机,在parent树上做一个很简单的树P就可以了 因为对于 阅读全文
posted @ 2016-04-08 06:17 _Vertical 阅读(232) 评论(0) 推荐(0)
摘要:求最小值最大显然是要二分 二分之后转换成了判定性问题 我们考虑哪些点一定不能选 显然是将所有可选点选中之后依然不满足条件的点不能选 那么我们不妨维护一个堆,每次取出堆顶看看是否满足条件 不满足条件就pop掉,并进行松弛 最后判定堆是否为空即可 另外,其实这道题思考到这里我们会发现二分并没有什么卵用, 阅读全文
posted @ 2016-04-07 06:55 _Vertical 阅读(169) 评论(0) 推荐(0)
摘要:首先我们会发现所有的人构成了一个图 定义相爱为 在一个集合里 定义相恨为 不在一个集合里 很容易发现满足条件的图一定是一个二分图 那么分类讨论如下: 1、如果出现不合法 答案为0 2、如果不是一个二分图 答案为0 3、设图中联通块有k个,那么答案为2^k/2! = 2^(k-1) 那么算法很明了了 阅读全文
posted @ 2016-04-07 06:31 _Vertical 阅读(170) 评论(0) 推荐(0)
摘要:题目啰里啰嗦说了一大堆(耐心读完题目就可以秒题了) 首先我们考虑当前置换的开头的循环节的开头 1、如果是1 1->1形成循环节 问题变成i-1的子问题 2、如果是2 1->2->1形成循环节 问题变成i-2的子问题 3、如果>2 则存在1->x->1形成一个循环节,但在原置换中不连续,所以一定不可能 阅读全文
posted @ 2016-04-07 06:27 _Vertical 阅读(189) 评论(0) 推荐(0)
摘要:先说我的解法吧 首先设f(i,j)表示选了前i个球且j种颜色都已经选完了的方案数 这显然是可以随便转移的 还有一种做法是考虑最后一种颜色,一定有一个在最后一位,其余的任意放 之后考虑倒数第二种颜色,一定有一个在当前的最后一位,其余的任意放 以此类推 所以ans=C(sum-1,c[n]-1]*C(s 阅读全文
posted @ 2016-04-07 06:22 _Vertical 阅读(150) 评论(0) 推荐(0)
摘要:总算搞定了这一场比赛的题目,感觉收获蛮大 其中A,B,C都能通过自己的思考解决掉 D题思路好神,E题仔细想想也能想出来 以后坚持每两天或者一天做一场CF的div1的全套题目 除非有实在无法做出来的题目,每道题目还是都要写题解的 (我这算不算立flag? 本蒟蒻写的题解的链接: A:http://ww 阅读全文
posted @ 2016-04-04 21:22 _Vertical 阅读(202) 评论(2) 推荐(1)
摘要:挺简单的题目,但是有一堆恶心的边界 在刨去恶心的边界之后: 假定我们知道两边的循环节为b1,b2 其中h第一次到达目标的时间为a1,a2 又知道对于答案t t=a1+b1*t1=a2+b2*t2 不妨枚举t1,判断是否存在可行解即可 又因为LCM(b1,b2)就开始循环了 且b1*b2<=b1*mo 阅读全文
posted @ 2016-04-04 21:16 _Vertical 阅读(287) 评论(0) 推荐(0)
摘要:跟之前做过的51Nod的移数博弈是一样的QAQ 我们考虑每个数的贡献 定义其左边第一个比他小的数的位置为L 定义其右边第一个比他小的数的位置为R 这个可以用排序+链表 或者 单调队列 搞定 那么对于区间长度1->(R-L-1),该数都可以作为最小值出现 我们在R-L-1上打上标记,最后从后往前来更新 阅读全文
posted @ 2016-04-04 21:09 _Vertical 阅读(415) 评论(3) 推荐(0)
摘要:首先我们注意到ai<=50w 因为2*3*5*7*11*13*17=510510 所以其最多含有6个质因子 我们将每个数的贡献分离, 添加就等于加上了跟这个数相关的互素对 删除就等于减去了跟这个数相关的互素对 问题转化为了求跟某个数相关的互素对的数目 我们可以用容斥来解决 即加上至少跟这个数有0个公 阅读全文
posted @ 2016-04-04 21:05 _Vertical 阅读(371) 评论(0) 推荐(0)
摘要:正解貌似是大暴搜? 首先我们考虑这是一个二分图,建立网络流模型后很容易得出一个算法 S->行 容量为Num[X]/2; 行->列 容量为1 且要求(x,y)这个点存在 列->T 容量为Num[Y]/2 这样子跑网络流之后我们就得到了一组解 但是我们考虑输出方案 对于每一行,如果Num[X]为偶数,那 阅读全文
posted @ 2016-04-04 20:56 _Vertical 阅读(418) 评论(0) 推荐(0)
摘要:原问题可以转化为:给定第k个字符串,求它在L-R的字符串里作为子串出现了多少次 定义子串为字符串的某个前缀的某个后缀(废话) 等价于我们把一个字符串插入到trie里,其过程中每个经过的节点和其向上的fail链上的点都是该字符串的子串 又因为对于一条fail链,u向上能访问到v当前仅当u在v的子树内 阅读全文
posted @ 2016-04-04 20:45 _Vertical 阅读(383) 评论(0) 推荐(0)
摘要:首先我们知道我们要求的是使得最大值最小,显然是要二分的 我们先对原串建出后缀自动机 之后二分答案是第k小的字符串 对于答案可行性的判定: 我们注意到对于每一个区间,其字典序最大的子串一定是区间的某个后缀 那么我们不妨从后往前扫,这样每次只会增加一个后缀 我们只需要判断这个后缀是否比当前答案小就可以了 阅读全文
posted @ 2016-04-04 20:34 _Vertical 阅读(518) 评论(0) 推荐(0)
摘要:设(x,y)为Q的查询点,分类讨论如下:1、y>0: 最大化a*x+b*y,维护一个上凸壳三分即可 2、y<0:最大化a*x+b*y 维护一个下凸壳三分即可 我们考虑对时间建出一棵线段树 对于每个区间,如果满了就做出两个凸壳 总时间复杂度是O(n*log^2n) 之后我们考虑查询,每个区间最多被分解 阅读全文
posted @ 2016-04-03 21:06 _Vertical 阅读(313) 评论(0) 推荐(0)
摘要:由于样例解释很清晰,所以很容易得到以下结论: 1、每一关都是独立的,且僵尸的相对位置不会变 2、每一关的攻击力=Max(sum(i)/dis(i)) 其实sum(i)是僵尸攻击力的前缀和,dis(i)是距离 然后因为输入是每次在队头添加,所以我们可以把前缀和转换成后缀和 攻击力=Max( (sum_ 阅读全文
posted @ 2016-04-03 20:55 _Vertical 阅读(185) 评论(0) 推荐(0)