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