- 博客(51)
- 收藏
- 关注
原创 HEOI2016 求和
题目链接:https://www.luogu.com.cn/problem/P4091提供一种O(N)O(N)O(N)的做法,需要用到具体数学里的有限微积分首先是化简原式:∑i=0n∑j=0iS(i,j)∗2j∗(j!)\sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*(j!)i=0∑nj=0∑iS(i,j)∗2j∗(j!)=∑i=0n∑j=0nS(i,j)∗2j∗(j!)=\sum_{i=0}^n\sum_{j=0}^nS(i,j)*2^j*(j!)=i=0∑nj=0∑n
2020-10-28 16:21:04 197
原创 HAOI2011 Problem B
题目链接:https://www.luogu.com.cn/problem/P2522这是一道莫比乌斯反演模板题我们要求的是:∑i=ab∑i=cd[gcd(i,j)=k]\sum_{i=a}^b\sum_{i=c}^d[gcd(i,j)=k]i=a∑bi=c∑d[gcd(i,j)=k]利用二维前缀和,我们发现只要求出∑i=1n/k∑j=1m/k[gcd(i,j)=1]\sum_{i=1}^{n/k}\sum_{j=1}^{m/k}[gcd(i,j)=1]i=1∑n/kj=1∑m/k[gcd(i
2020-10-27 14:58:08 221
原创 Luogu 5824 十二重计数法
题目链接:https://www.luogu.com.cn/problem/P5824终于挺过了球与盒的世界这道题 是真的毒瘤,强行十二合一I最简单的之一,mnm^nmn即可II从mmm个盒子里选出nnn个出来放球,然后由于球是有顺序的,排列即可,答案为P(m,n)P(m,n)P(m,n)III注意到第二类斯特林数,求出{nm}\begin{Bmatrix}n \\ m \end{Bmatrix}{nm},然后乘上盒子的全排列即可IV枚举非空盒子的个数,然后求第二类斯特林数ans=∑
2020-10-26 16:30:54 331
原创 HAOI2018 染色
题目链接:https://www.luogu.com.cn/problem/P4491这显然是一道计数题我们先设f[i]f[i]f[i]代表钦定恰好出现SSS次的颜色有iii种的方案数则:f[k]=(mk)(nsk)P(n,s,s,s...s)∗(m−k)n−skf[k]= \binom{m}{k} \binom{n}{sk}P(n,s,s,s...s)*(m-k)^{n-sk}f[k]=(km)(skn)P(n,s,s,s...s)∗(m−k)n−sk那么由二项式反演可得:g[k]=∑i=km
2020-10-25 08:51:49 189
原创 AGC002D Stamp Rally
题目链接:https://atcoder.jp/contests/agc002/tasks/agc002_d这是一道好题。。。很显然,kruskalkruskalkruskal重构树的题目我们建一棵重构树和树上倍增数组,然后再二分答案,跳到小于等于答案,ididid最大的点,利用dfsdfsdfs序检查两个区间是否满足叶子节点的并大于给定的zzzCodeCodeCode#include <iostream>#include <cstdlib>#include <c
2020-10-23 19:46:07 200
原创 CF1305F Kuroni and the Punishment
题目链接:https://codeforces.com/contest/1305/problem/F这是一道很神仙的题算法就是我们一般不常用的随机化我们发现,这个玩意的操作上线是nnn,只要以222作为最终的GCDGCDGCD即可此时,也就是说操作次数>=2>=2>=2的数的个数<=n/2<=n/2<=n/2,于是我们可以想到随机化,我们先打乱整个序列,然后从中选出前100100100个数,认为它们只操作不超过一次。由于随机选出一个数操作次数大于等于222的概率
2020-10-22 09:39:24 158
原创 HNOI2017 礼物
题目链接:https://www.luogu.com.cn/problem/P3723我们要求的是一个和式,我们设s=∑i=1n(xi−yi+c)2s=\sum_{i=1}^n(x_i-y_i+c)^2s=∑i=1n(xi−yi+c)2,ccc为负就是第二个手环加上ccc展开可得:s=∑i=1nxi2+yi2+c2+(xi−yi)c−2xiyis=\sum_{i=1}^nx_i^2+y_i^2 + c^2+(x_i-y_i)c-2x_iy_is=i=1∑nxi2+yi2+c2+(xi−yi
2020-10-20 09:41:23 128
原创 UVA11605 Lights inside a 3d Grid
题目链接:https://www.luogu.com.cn/problem/UVA11605我们设这个大的三维矩形长宽高分别为n,m,hn,m,hn,m,h这显然是一道概率题我们看到每一个点都是互相独立的于是我们想到可以算出每一个点经过操作之后为1的概率我们设f[i][j][k][q]f[i][j][k][q]f[i][j][k][q]代表(i,j,k)(i,j,k)(i,j,k)这个点经过qqq次操作后为111的概率p[i][j][k]p[i][j][k]p[i][j][k]代表随机进行一次操
2020-10-19 22:02:10 124
原创 序列自动机
自动机的基础知识 https://oi-wiki.org/string/automaton/好的,那么我们就直接进入正题。顾名思义,序列自动机,那我们的状态其实是一个序列假设给定一个字符串strstrstr我们定义δ(s,c)\delta(s,c)δ(s,c)代表在sss这个位置之后ccc字符出现的第一个位置那么很显然,这个可以从后往前递推求解,就可以求出转移函数了构建void build(char *str, int n){ for (register int i = 0; i &l
2020-10-19 18:03:21 272
原创 Luogu 1258 队员分组
题目链接:https://www.luogu.com.cn/problem/P1285这是一道很好很好的题看一眼题目,就发现可能与二分图有关然后,经过一定时间的思考,你会发现,这道题好像并不能直接用图论算法或者动态规划解决这时候,我们就要考虑,是不是有一些可以用来贪心的定理。首先直观一般会想到关于可以分到一个集合的人的条件然后就会发现,一个人与不认识他或他不认识的人是绝对不可以分到同一个集合,这样是不是可以看做一个无向的边,又是分为两个集合,二分图染色?我们可以把每个人与不认识他或者他不认识的
2020-10-19 15:42:17 198
原创 [USACO19FEB]Cow Dating P
题目链接:https://www.luogu.com.cn/problem/P5242这是一道很妙的概率贪心题首先我们应该列出选择LLL到RRR这个区间的概率的公式:令P=∏i=lr1−p[i]P=\prod_{i=l}^r1-p[i]P=∏i=lr1−p[i]则:pl,r=∑i=lr P∗p[i]1−p[i]p_{l,r}=\sum_{i=l}^r\ P*\frac{p[i]}{1-p[i]}pl,r=∑i=lr P∗1−p[i]p[i]那么我们看到数据范围,贪心是肯
2020-10-14 21:58:49 164
原创 USACO4.4 追查坏牛奶Pollutant Control
题目链接:https://www.luogu.com.cn/problem/P1344这显然是一道网络流题目第一问裸的最大流关键在于第二问怎么求一个很妙的做法是将边权乘上大常数再加1,这样分成了两部分,前面的代表流量,后面代表割的边数。由于乘上一个大常数,所以新图的最小割等价于原图的最小割情况下加上割的边数然后求新图最小割即可CodeCodeCode#include <iostream>#include <cstdlib>#include <cstdio&g
2020-10-13 20:22:10 285
原创 ZJOI2010 网络容量
题目链接:https://www.luogu.com.cn/problem/solution/P2604这一眼就是网络流题目第一问十分简单,直接最大流即可那么怎么做第二问呢?我们观察到,先算出了第一问的maxflowmaxflowmaxflow,然后第二问等价于在原图中(原图中每条边费用为0),每条边加上一条流量为∞\infty∞,费用为原边的费用的图然后根据最大流最小费用算法,我们可以知道其实是不用重新建整个图,只需要在当前残量网络中加上原图没有的边即可这是因为最大流最小费用算法每次会找出费用
2020-10-08 21:26:41 171
原创 树形背包优化 (updating)
自从上次模拟赛后,我决定隔一段时间整理一些背包优化,可能毫无顺序1.dfsdfsdfs的时候保存链的信息一道模拟赛题:给定一棵树,有nnn各节点,每个节点都有一个非负权值,对于每条边,你有0.50.50.5的概率断掉这条边,求以111为根遍历的数的权值之和为kkk的概率(答案对998244353998244353998244353取模)1<=n,k<=50001 <= n,k <= 50001<=n,k<=5000直接设dp[i][j]dp[i][j]dp[i][
2020-10-08 19:43:19 340
原创 JSOI2018 列队
题目链接:https://www.luogu.com.cn/problem/P4559今天刚学了主席树。看到这道题,求编号[l,r][l,r][l,r]的贡献,看起来和还是很像主席树不难看出,在移动过程中,不改变相对位置一定是最优的(之一)首先按编号建rootrootroot,不断更新值在updateupdateupdate过程中要维护两个值,一个是位置在[l,r][l,r][l,r]之间的个数,另一个是这些位置的和。至于查询的时候,如果在某一区间内的人都要向左跑或者向右跑,可以推式子一步求解。
2020-09-26 17:37:19 144
原创 [USACO06DEC]Milk Patterns G
题目链接:https://www.luogu.com.cn/problem/P2852今天打算复习一下后缀数组后缀数组裸题。紧扣后缀数组性质,LCP(sa[i],sa[j])=min(height[k])k<i<=jLCP(sa[i],sa[j])=min(height[k]) \quad k<i<=jLCP(sa[i],sa[j])=min(height[k])k<i<=j还有一个性质:任意一个后缀的前缀是原串中唯一的一个子串然后就可以先预处理出后缀数组,然后
2020-09-24 22:36:55 157
原创 JSOI2007 字符加密
题目链接:https://www.luogu.com.cn/problem/P4051抽了点时间复习了一下后缀数组这道题其实不难将字符串拉环成链, 然后再求后缀数组即可这样后缀排序出来,与原题所要求的顺序相符(可以自行推理)CodeCodeCode#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>using namespace std;const
2020-09-24 21:32:25 153
原创 2020.9.12 NOIP模拟赛3 T3 qmras
题目描述:给定一个长度为nnn的字符串,询问所有长度小于等于kkk的子串中相等的对数。(答案对998244353998244353998244353取模)对数即si,sjs_i,s_jsi,sj是SSS的字串,满足len(si),len(sj)<=klen(s_i),len(s_j)<=klen(si),len(sj)<=k且si=sjs_i=s_jsi=sj的数量如果考场上仔细看一下题目qmrasqmrasqmras,倒过来就是sarmqsarmqsarmq,就知道本题使
2020-09-15 22:57:58 303
原创 2020.9.13 NOIP模拟赛4 T1 brick
题目描述:有nnn行mmm列个砖块,每个砖块有一个分数valuei,jvalue_{i,j}valuei,j,打一个砖块要耗费一颗子弹。砖块都是先打一列最下面那一个.其中存在一些奖励砖块,如果打到奖励砖块,会得到一颗子弹。初始时你有kkk颗子弹,可以决定打砖块的顺序,求最大分数输入格式:第一行三个整数n,m,kn,m,kn,m,k---------------然后是nnn行mmm列,每一个数代表每个砖块的分数值---------------接着是nnn行mmm列,每一个数代表该砖块是否为奖励砖块[0
2020-09-13 20:31:51 223
原创 2020.9.13 NOIP模拟赛4 T2 math
题目描述:已知a+b+c=n, a2+b2+c2=m,a3+b3+c3=ka+b+c=n, \ a^2+b^2+c^2=m,a^3+b^3+c^3=ka+b+c=n, a2+b2+c2=m,a3+b3+c3=k求:ap+bp+cpa^p+b^p+c^pap+bp+cp输入格式:四个整数n,m,k,pn,m,k,pn,m,k,p如题目描述输出格式:一个整数,即ap+bp+cpa^p+b^p+c^pap+bp+cp数据范围:0<=n,m,k<=200<=n,m,k&
2020-09-13 19:59:27 176
原创 2020.9.13 NOIP模拟赛4 T3 XOR
题目描述:给定一个数列{AnA_nAn},考虑所有数对(i,j)(i,j)(i,j),(i∈[1,n],j∈[1,n])(i\in[1,n],j\in[1,n])(i∈[1,n],j∈[1,n]),求所有的lowbit(A[i],A[j])lowbit(A[i],A[j])lowbit(A[i],A[j])之和答案对199907210507199907210507199907210507取模数据范围:1<=n<=1051 <= n <= 10^51<=n<=105
2020-09-13 18:10:41 177
原创 UVA1356 Bridge
题目链接:https://www.luogu.com.cn/problem/UVA1356题目表面意思很简单。首先我们可以很轻易地求出抛物线的个数cntcntcnt然后可以得到每个抛物线的最长长度lenlenlen设抛物线顶点到最高点高度为hhh接着需要一个引理:可导函数f(x)f(x)f(x)定义在(c,d)(c,d)(c,d)上, 平面直角坐标系上[a,b]上的弧长为∫ab1+[f′(x)]2dx\int_a^b\sqrt{1+[f'(x)]^2}dx∫ab1+[f′(x)]2dx证明
2020-09-11 20:04:14 222 1
原创 自适应辛普森积分
问题:求∫abf(x)dx\int_a^b {f(x)}dx∫abf(x)dx辛普森积分的本质思想是将f(x)f(x)f(x)看作一个二次函数来简化问题令∫abf(x)dx≈∫ab(Ax2+Bx+C)dx\int_a^b f(x)dx\approx\int_a^b(Ax^2 + Bx + C)dx∫abf(x)dx≈∫ab(Ax2+Bx+C)dx即:f(x)≈Ax2+Bx+Cf(x)\approx Ax^2+Bx+Cf(x)≈Ax2+Bx+C可以解得:∫abf(x)dx≈(b−a)6∗[f(a
2020-09-11 19:35:29 185
原创 UVA1386 Cellular Automaton
题目链接:https://www.luogu.com.cn/problem/UVA1386看到题目,每次操作都会影响每个格子,很容易列出操作矩阵。但是直接矩阵快速幂会T,必须优化才行观察整个矩阵,发现由于距离这一因素,这个操作矩阵是循环矩阵(从第二行开始每一行都是上一行的循环右移)可以证明,两个循环矩阵的乘积的矩阵还是循环矩阵证:令A,BA,BA,B为两个循环矩阵,C=A∗BC = A * BC=A∗B对于Ci,jC_{i,j}Ci,j,有Ci,j=∑k=1rAi,k∗Bk,jC_{i,j}
2020-09-09 22:34:38 143
原创 NOIP模拟赛2 B题 (点分治)
题目描述:给出一棵树,求出最小的kkk,使得,且在树中存在路径PPP,使得k≥Sk ≥ Sk≥S 且k≤Ek ≤ Ek≤E. (kkk为路径PPP上的边的权值和)很显然的点分治的题目。按照点分治的套路,1.1.1.先对这棵树进行重心划分2.2.2.统计过重心的点的路径3.3.3.递归求解在统计路径的时候,排序后枚举加lowerboundlowerboundlowerbound,同时为避免统计到同一子树的(以当前划分的重心为根),可以每次统计一颗子树内的路径长度,就与已遍历子树进行答案统计,时间复
2020-09-06 19:30:33 167
原创 prufer序列
pruferpruferprufer序列由有一个对于顶点标过号的树转化来的数列无根树转pruferpruferprufer序列1.1.1.找出编号最小的叶子结点2.2.2.删除该节点,在序列中加入与其相连的结点3.3.3.重复上述步骤直到树中只剩下两个结点由此可得:1.1.1.在pruferpruferprufer序列中未被删除的两个结点中一定有一个编号为nnn2.2.2.pruferpruferprufer序列中每个数出现的次数为其 度数-1pruferpruferprufer序列转无
2020-08-29 09:12:47 123
原创 CF156D Clues
题目链接:https://codeforces.com/problemset/problem/156/D题目翻译:给定一个 nnn 个点 mmm 条边的带标号无向图,它有 kkk 个连通块,求添加 k−1k−1k−1 条边使得整个图连通的方案数,答案对 ppp 取模。前置知识:prufer序列, nnn个有标号的点连成的无根树的方案数为:nn−2n ^ {n - 2}nn−2那么对于任意一个有kkk个连通块的图,设每个连通块点数为sis_isi, 连通块之间的连边等价于将每个连通块看成一个点,nnn
2020-08-29 08:33:55 178
原创 ZJOI2006 物流运输
题目链接:https://www.luogu.com.cn/problem/P1772这道题有几种解法…看到m<=20m<=20m<=20,想到状压dpdpdp设dp[i][s]dp[i][s]dp[i][s]表示前iii天中,第iii天状态为sss的最小花费f[s]f[s]f[s]为每天的转移状态先要记忆化dfsdfsdfs处理出fff数组dp[i][s]=min(dp[i−1][s]+f[s],min(dp[i−1])+f[s]+k)dp[i][s]=min(dp[i-1]
2020-08-23 22:41:00 139
原创 SDOI2015 序列统计
题目链接:https://www.luogu.com.cn/problem/P3321题目大意:给定一个序列SSS,从中选出任意nnn个数,可重复、顺序相关,求乘积模mmm下同余于xxx的个数,保证mmm为质数初看题目,很难看出乘积如何处理。但它保证了mmm为质数,就可以联想到离散对数离散对数链接将序列SSS中每个数以及xxx分别取离散对数,原问题等价成了选出nnn个数相加,设个数的生成函数为G(x)G(x)G(x)则:G(x)=(∑i=0∞xi)n (i∈S)G(x)=(
2020-08-19 17:21:56 200
原创 原根与离散对数
阶:al≡1a^l \equiv 1al≡1 (mod(mod(mod m)m)m) 该方程lll的最小正整数解成为aaa在模mmm意义下的阶,记为ordm(a)ord_m(a)ordm(a)原根:设mmm是正整数,aaa是(正)整数,若aaa模mmm的阶等于φ(m)φ(m)φ(m),则称aaa为模mmm的一个原根。原根的性质1.设ggg为模ppp下的原根,原根保证了gl≡1g^{l} \equiv1gl≡1 (mod(mod(mod p)p)p)该方程最小正整数解为φ(p)\varphi(p
2020-08-19 17:04:15 312
原创 NOI2007 货币兑换
题目链接:https://www.luogu.com.cn/problem/P4027典型的线性dpdpdp题目最低下居然还有提示dp[i]dp[i]dp[i]在第iii天之前买光股票的最大收入dp[i]=max(dp[j]∗ratejratej∗aj+bj∗ai+dp[j]ratej∗aj+bj∗bi)dp[i]=max(\frac{dp[j]*rate_j}{rate_j*a_j+b_j}*a_i+\frac{dp[j]}{rate_j*a_j+b_j}*b_i)dp[i]=max(ratej
2020-08-15 18:13:22 156
原创 NOI Online #1 入门组 魔法
题目链接:https://www.luogu.com.cn/problem/P6190题目大意:给定一个nnn个点mmm条边的图,你有kkk次施展魔法的机会,每次施展魔法可以让经过下一条边的权值在这一刻取负,求从111到nnn的最小花费考虑动态规划,设dp[i][j][k]dp[i][j][k]dp[i][j][k]表示从iii到jjj使用kkk次魔法的最小花费。dp[i][j][k]=min(dp[i][u][k−1]+dp[u][j][1],dp[i][u][1]+dp[u][j][k−1])dp
2020-08-15 09:57:29 229
原创 NOI Online #2 提高组 游戏
题目链接:https://www.luogu.com.cn/problem/P6478题意:给定一棵树,每次从里面选出各一个权值为111和000的结点,直到选完为止,求每次选出结点是另一个该次选出结点父亲的方案数直接计算答案很难,但我们发现选出至少iii个结点满足题目要求比较容易算出来,再利用二项式反演容斥一下即可设dp[i][j]dp[i][j]dp[i][j]表示从iii及其子树中选出jjj对题目所要求的点的方案数dp[i][j]=∑k1+k2+...+km=jdp[v1][k1]∗dp[v2]
2020-08-14 19:50:38 275 1
原创 Luogu 4550 收集邮票(无穷级数搞期望)
题目链接:https://www.luogu.com.cn/problem/P4550没接触高等数学可能看不懂这个期望比较奇怪,每一张邮票的所花的钱都不同设val[i]val[i]val[i]代表买了iii种邮票且下一次就能买到第i+1i+1i+1种邮票所花钱数,step[i]step[i]step[i]代表这一情况下所买邮票的张数则:val[i]=val[i−1]+∑k=0∞(step[i]+k+1)∗(in)kval[i]=val[i-1]+\sum_{k=0}^{\infty}(step[i]
2020-08-13 20:04:41 290
原创 csp2019 Emiya 家今天的饭
题目链接:https://www.luogu.com.cn/problem/P5664去年考场上我很菜。。。现在还是一样菜。。。。。。题目抽象出来就是给你一个nnn行mmm列的矩阵(数表),可以从里面选出任意个数,每一行只能选一个数,要求每一列选出的数不超过选出总数的⌊12⌋\lfloor \frac{1}{2} \rfloor⌊21⌋,每一个方案的贡献是所有选出的数的乘积,求所有方案之和取模如果要直接保证每一列选出的数不超过选出总数的⌊12⌋\lfloor \frac{1}{2} \rfloor
2020-08-13 14:56:34 199
原创 HNOI2011 XOR和路径
题目链接:https://www.luogu.com.cn/problem/P3211题意很简单,每次等概率向任意一个与当前结点相连的结点走去,求从111到nnn的异或和期望考虑dpdpdp,设dp[i]dp[i]dp[i]为从结点iii到nnn的异或和则由条件期望公式:E(dp[u])=1k∑(u,v)∈edgeE(dp[v]) xor W(u,v)E(dp[u])=\frac{1}{k}\sum_{(u,v)\in{edge}}E(dp[v])\; xor\;W(u,v) E(dp[u])=k
2020-08-13 10:23:03 162
原创 ZJOI2010 基站选址
题目链接:https://www.luogu.com.cn/problem/P2605题目的条件数据比较多,在一个地方建基站会影响左右两边看看数据范围,考虑dpdpdp因为基站会影响左右两边,设dp[i][j]dp[i][j]dp[i][j]表示在前jjj个村庄中建iii个基站,且最后一个基站建在第jjj个位置,val(i,j)val(i,j)val(i,j)代表iii至jjj间村庄www的花费(注意:jjj代表村庄)dp[i][j]=min(dp[i−1][k]+val(k,i))dp[i][j]
2020-08-12 10:54:14 191
原创 HNOI2011 数学作业
题目链接: https://www.luogu.com.cn/problem/P3216题意十分简单。令f(n)f(n)f(n)表示Concatenate(n)Concatenate(n)Concatenate(n) modmodmod mmm 的值则设nnn的位数为SSS则:f(n)=S∗f(n−1)+nf(n)=S * f(n-1)+nf(n)=S∗f(n−1)+n (mod(mod(mod m)m)m)发现这是一个线性递推式,想到n,mn,mn,m特别大,考虑矩阵乘法令g(n)=ng(n
2020-08-11 20:27:42 185
原创 2020.8.7上海月赛t2(甲组)
题目描述有 nnn 只猫,每只猫各自拥有一些花生。一开始,所有猫拥有的花生数量都为 000。接下来的每一天,这些猫咪会得到、吃掉或交换一些花生。经过观察发现,猫咪们每天的行为都是完全相同的,猫咪们在一天内的行为可以用 kkk 个动作描述,给定猫咪们每天重复的动作序列,那么经过 mmm 天之后,每只猫咪会有多少花生呢?输入格式第一行:三个整数分别表示 nnn,mmm 和 kkk;接下来有 kkk 行,描述了猫咪们一天内的行为,一行表示一个动作,每一行的第一个字符为一个小写字母:1.以 g 开头的动作
2020-08-11 11:49:37 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人