02 2018 档案

摘要:从后向前建主席树,以位置为下标建树,然后查询区间出现次数的第k/2大即可。 复杂度O(nlogn) 阅读全文
posted @ 2018-02-28 21:40 大奕哥&VANE 阅读(144) 评论(0) 推荐(0) 编辑
摘要:二维线段树板子,注意标记永久化。 阅读全文
posted @ 2018-02-28 18:13 大奕哥&VANE 阅读(346) 评论(1) 推荐(0) 编辑
摘要:这就是区分高中生和小学生爸爸的题目吧。 推导扣一个网上的式子吧 阅读全文
posted @ 2018-02-28 15:56 大奕哥&VANE 阅读(295) 评论(0) 推荐(0) 编辑
摘要:前两块可以看成是不是二次剩余,快速幂计算即可。 后半部分可以看成x1=a+b+2ab,x2=a+b-2ab为特征方程x^2-px-qx=0的两根 然后可以通过韦达定理求出p和q,因此递推式为A(n+2)=pA(n+1)+qA(n) 还要用费马小定理化简一下斐波那契数。 矩阵快速幂即可求。 阅读全文
posted @ 2018-02-27 17:49 大奕哥&VANE 阅读(220) 评论(0) 推荐(0) 编辑
摘要:嗯哼大步小步法。 一个非常暴力的想法. 注意到如果设C = ⌈√P⌉,那么任何一个数都可以写 成a1 * C + b1的形式,其中a1, b1 都< C. 那么预处理出A^i*C的值.然后在询问时枚举b1. A^a1*C-b1 = B,A^a1*C = B * A^b1. 把A^b1乘一下,再去ha 阅读全文
posted @ 2018-02-27 11:50 大奕哥&VANE 阅读(181) 评论(0) 推荐(0) 编辑
摘要:今天下午学习了二项式反演,做了一道错排的题,开始了苦逼的经历。 显然答案是C(︀n,k)︀*H(n − k).其中H(i)为长度为i的错排序列 然后经过课件上一番二项式反演的推导 我就写了个扩展卢卡斯然后交上去了。 一直t啊..... 我算了算复杂度差不多是O(T*P*log^3P) 后来剪了剪枝, 阅读全文
posted @ 2018-02-26 18:34 大奕哥&VANE 阅读(162) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/doyouseeman/article/details/52033204 简介 Cipolla算法是解决二次剩余强有力的工具,一个脑洞大开的算法。 认真看懂了,其实是一个很简单的算法,不过会感觉得出这个算法的数学家十分的机智。 基础数论储备 二次剩余 阅读全文
posted @ 2018-02-25 12:10 大奕哥&VANE 阅读(1042) 评论(0) 推荐(1) 编辑
摘要:建出虚树然后dp。 阅读全文
posted @ 2018-02-13 09:38 大奕哥&VANE 阅读(159) 评论(0) 推荐(0) 编辑
摘要:最大权闭合子图。 阅读全文
posted @ 2018-02-13 09:36 大奕哥&VANE 阅读(125) 评论(0) 推荐(0) 编辑
摘要:求边双联通分量,然后组成一颗树,叶子结点两两配对即可。 By:大奕哥 阅读全文
posted @ 2018-02-11 20:54 大奕哥&VANE 阅读(186) 评论(0) 推荐(0) 编辑
摘要:tarjan求割点,乘法原理统计答案,对数答案翻倍。 By:大奕哥 阅读全文
posted @ 2018-02-11 18:51 大奕哥&VANE 阅读(197) 评论(0) 推荐(0) 编辑
摘要:先把矩阵式子化简 原式=∑i=1n∑j=1nA[i]∗B[i][j]∗A[j]−∑i=1nA[i]∗C[i] 因此我们发现问题转化为选取一个点所获收益是B[i][j],代价是C[i][j] 这是一个最小割问题。 先把答案记做所有b的和。 将边按照s——>p[i][j](b[i][j]) p[i][j 阅读全文
posted @ 2018-02-11 18:25 大奕哥&VANE 阅读(150) 评论(0) 推荐(0) 编辑
摘要:将最少士兵数转化为最多能删多少士兵建图即可。 By:大奕哥 阅读全文
posted @ 2018-02-11 14:36 大奕哥&VANE 阅读(125) 评论(0) 推荐(0) 编辑
摘要:**错误改了一上午。 先做熟练泼粪 k<=5,因此我们可以模拟这个过程,在线段树上把标记建出来然后pushup时候更新就好了。 By:大奕哥 阅读全文
posted @ 2018-02-11 11:50 大奕哥&VANE 阅读(227) 评论(0) 推荐(0) 编辑
摘要:给定n,m和k,求有多少对(i , j)满足0 ≤ i ≤ n, 0 ≤ j ≤ min(i ,m)且C(︀i,j)︀是k的倍数.n,m ≤ 1018, k ≤ 100,且k是质数. 把i和j都看成k进制数,事实上这个问题就是问有多少对j ≤ i满足j有一位比i大. 转化成数位DP 对每一位进行转移 阅读全文
posted @ 2018-02-10 16:52 大奕哥&VANE 阅读(219) 评论(0) 推荐(0) 编辑
摘要:hash值建主席树。 垃圾题面没有熟虑范围害我MLE——>RE。 By:大奕哥 阅读全文
posted @ 2018-02-10 11:25 大奕哥&VANE 阅读(190) 评论(0) 推荐(0) 编辑
摘要:博弈论。 就是有一堆石子你拿走一堆中的一个,然后再向后面两堆中加两个问胜负 i<j<=k 所以我们可以直接通过sg函数计算,考虑问题的奇偶性,如果这一位是奇的我们才考虑,偶的可以模仿 然后对所有sg异或一下,找到三个数异或起来能使当前先手必败即可。 By:大奕哥 阅读全文
posted @ 2018-02-09 18:18 大奕哥&VANE 阅读(172) 评论(0) 推荐(0) 编辑
摘要:斜率优化DP。 阅读全文
posted @ 2018-02-08 21:23 大奕哥&VANE 阅读(157) 评论(0) 推荐(0) 编辑
摘要:先建虚树,然后统计答案。 对于这个两点间最大值和最小值的操作我参考了hzwer的代码。 建虚树时注意判自环 By:大奕哥 阅读全文
posted @ 2018-02-08 20:15 大奕哥&VANE 阅读(200) 评论(0) 推荐(0) 编辑
摘要:最长反链=最小链覆盖。 http://vfleaking.blog.163.com/blog/static/1748076342012918105514527/ By:大奕哥 阅读全文
posted @ 2018-02-08 16:48 大奕哥&VANE 阅读(130) 评论(0) 推荐(0) 编辑
摘要:真是到很强的数学题 先利用欧拉定理A^B %p=A^(B%φ(p)+φ(p) ) %p 然后利用卢卡斯定理求出在modφ(p)的几个约数下的解 再利用中国剩余定理合并 计算答案即可 By:大奕哥 阅读全文
posted @ 2018-02-05 11:35 大奕哥&VANE 阅读(153) 评论(0) 推荐(0) 编辑
摘要:根据Pi>Pi/2可以看出来这是一个二叉树 所以我们可以用树形DP的思想 f[i]=f[i<<1]*f[i<<1|1]*C(s[i]-1,s[i<<1]),s是子树大小 然后求组合数可以用卢卡斯定理 BZ上加强数据后我那个线性求n!逆元就挂掉了,于是就直接算了。 阅读全文
posted @ 2018-02-05 10:16 大奕哥&VANE 阅读(171) 评论(0) 推荐(0) 编辑
摘要:这就是均分纸牌加强版,不过我们要用网络流做。 看了一下hzwer博客深受启发。 「问题分析」 转化为供求平衡问题,用最小费用最大流解决。 「建模方法」 首先求出所有仓库存货量平均值,设第i个仓库的盈余量为A[i],A[i] = 第i个仓库原有存货量 – 平均存货量。建立二分图,把每个仓库抽象为两个节 阅读全文
posted @ 2018-02-04 16:13 大奕哥&VANE 阅读(200) 评论(0) 推荐(0) 编辑
摘要:其实是水题只不过在noip前一个月时我问整个机房也没人能回答上来。 现在可以随随便便切过去了也是很爽的。 最小费用最大流,按题目要求建图即可。 阅读全文
posted @ 2018-02-04 15:43 大奕哥&VANE 阅读(134) 评论(0) 推荐(0) 编辑
摘要:源点向起点连边,终点向汇点连边。 点点之间连边,一条是流量无限不花钱的,一条是流量为1花钱的 最大费用最大流即可。 By:大奕哥 阅读全文
posted @ 2018-02-04 15:41 大奕哥&VANE 阅读(202) 评论(0) 推荐(0) 编辑
摘要:唉,spfa中c写成w了改了半天。。。 首先这题可以用spfa直接模拟过 但这里我们是要做网络流的,所以我们还是按照分层图建网络流 对于一个状态d[i][j]表示走到i时还能走j步,然后我们把这个状态看成一个点做就行了 By:大奕哥 顺便祝各位长沙旅行愉快 阅读全文
posted @ 2018-02-03 14:36 大奕哥&VANE 阅读(206) 评论(0) 推荐(0) 编辑
摘要:这题太神了 首先我们可以发现只有当i和j都是偶数时a[1][1]^a[1][j]^a[i][1]^a[i][j]=1才满足情况,其它时都为0 所以我们可以先把i和j都为偶数的地方^1变为0 下面才是最牛逼的地方,并查集的应用在这里体现的淋漓尽致。 0表示相同 1表示不同 一开始赋初值都表示为相同 然 阅读全文
posted @ 2018-02-02 09:19 大奕哥&VANE 阅读(153) 评论(0) 推荐(0) 编辑
摘要:对于每个线段拆成两个点,如同之前一样建图,由于可能出现垂直于x轴的 所以建图由i指向i~ 继续最小费用最大流 By:大奕哥 阅读全文
posted @ 2018-02-01 18:18 大奕哥&VANE 阅读(216) 评论(0) 推荐(0) 编辑
摘要:对于每个点向后一个点连流量为k费用为0的边 对每一区间连l到r流量为1费用为r-l的边 然后最小费用最大流,输出取反 一开始写的r-l+1错了半天。。。 By:大奕哥 阅读全文
posted @ 2018-02-01 15:25 大奕哥&VANE 阅读(188) 评论(0) 推荐(0) 编辑
摘要:最大费用最大流 向他能走的方向连边,如果有石头可以选则连一条流量为1费用为1的边 dfs输出结果即可。 By:大奕哥 阅读全文
posted @ 2018-02-01 10:42 大奕哥&VANE 阅读(151) 评论(0) 推荐(0) 编辑
摘要:乍一看与那个互不侵犯King很像,但这个数据范围就只能网络流了 我们可以发现只有黑的能攻击白的,白的能攻击黑的。 所以黑白相当于一个二分图 最小点独立集=总数-最小割(也就是说两个点里要至少留一个) 最小割=最小点覆盖=最大匹配 网络流建图求最大匹配即可 同时在做这题的过程中我发现对于网络流求最大匹 阅读全文
posted @ 2018-02-01 08:27 大奕哥&VANE 阅读(165) 评论(0) 推荐(0) 编辑