关闭

虚树学习小结

其实虚树这东西…不知道说什么好…简单易学呃 虚树主要处理一种询问总点数不超过O(n),且每次询问的那些点,在预处理之后,所求的值,只和他们,以及他们两两的LCA有关 这里有个显然的结论,即m个点两两的LCA不超过m-1个,将这m个点按dfs序排序之后相邻两点的m-1个LCA就是这m个点两两的LCA 建立虚树的过程,实际上是把那些在树上但是与询问无关的点剔除,只剩下会对答案产生贡献的点,接着挺多...
阅读(12) 评论(0)

后缀自动机学习小结

这是第不知道多少次学SAM…感觉以后还要忘赶紧留个笔记..欢迎指出错误SAM有两个东西,一个是trans,一个是parent树 第一个东西的作用,就是如果你从根节点开始,走一个串,如果这个串是原串的子串,就一定能够走到这么一个点,他的parent树里的子树里的right的并集就是这个串在原串出现的所有位置,如果这个串不是子串,就不能够走到一个点 parent树,可以把它理解成反串的后缀树, 因...
阅读(9) 评论(0)

BZOJ1179: [Apio2009]Atm

给一个有向图,每个点有价值,第一次到达这个点可以获得他的价值,给出起点和若干个终点,问最大能获得的价值是多少缩点后变成一个DAG,f[i]表示起点到这个点最大价值,直接拓扑序DP就好了code:#include #include #include #include #include #include #include<cma...
阅读(30) 评论(0)

BZOJ4555: [Tjoi2016&Heoi2016]求和

第二类斯特林数S(i,j)S(i,j)代表ii个数分成jj个集合的方案数f(n)=∑ni=0∑ij=0S(i,j)∗2j∗j!f(n)=\sum_{i=0}^n \sum_{j=0}^i S(i,j)*2^j*j! 这里的S(i,j)∗2j∗j!S(i,j)*2^j*j! 可以理解成i个数分成j个集合,考虑顺序,每个集合有2种状态的方案数 记g(n)=∑ni=0S(n,i)∗2i∗i!g(n)=...
阅读(37) 评论(0)

弱省胡策Round5 Handle

题意: 给定B0...BnB_0...B_n,求A0...AnA_0...A_n满足Bi=∑nj=iCijAj(mod 988244353)Bi=\sum_{j=i}^nC_j^iA_j ( mod\ 988244353)题解: 拆组合数 得Bi=∑nj=ij!i!(j−i)!AjB_i=\sum_{j=i}^n\dfrac{j!}{i!(j-i)!}A_j 于是Bii!=∑nj=i1(j−...
阅读(28) 评论(0)

BZOJ3771: Triple

我们写出斧头的生成函数F(x)F(x) 题目要求用1把、2把、3把斧头能拼出的方案数,不考虑顺序 那就要去掉非法情况和重复情况 所以就不能写成:F(x)+F2(x)+F3(x)F(x)+F^2(x)+F^3(x) 对于F2(x)F^2(x),他会有一把斧头用2次的情况 对于F3(x)F^3(x),会有一把斧头用2、3次的情况 于是令T(x)T(x)为每把斧头用2次的生成函数,G(x)G(...
阅读(36) 评论(0)

BZOJ3028: 食物

好久没有更新博客了话说… 博主并没有退役….我们写出每种食物的生成函数 承德汉堡:1+x2+x4....=11−x21+x^2+x^4....=\frac{1}{1-x^2} 可乐:1+x1+x 鸡腿:1+x+x2=1−x31−x1+x+x^2=\frac{1-x^3}{1-x} 蜜桃多:x+x3+x5....=x1−x2x+x^3+x^5....=\frac{x}{1-x^2} 鸡块:...
阅读(40) 评论(0)

51nod算法马拉松25

A:将1~n放入n个位置,问有多少种方案使得按照题目给出的寻找m的二分程序最终找到的位置是k可以模拟题目的二分程序,最后的位置是k,那么有log个位置的值和m的大小关系就确定了,算先放这些位置的方案数,剩下的位置放什么都行,有(n-log)!种方案 因为n的值很大,所以算阶乘可以分段打表B:给出n个数字,问用这n个数字组成的序列有多少种满足相邻两项差的绝对值小于1首先排序,如果值不是连续的就一定无...
阅读(117) 评论(0)

Codeforces 812

A 判断会不会撞到人 判一下有人走的路有没有车经过就行了 B n*(m+2)的矩形,一开始在左下角,移动一格需要1的时间,关灯不需要时间,两端可以上楼 问关掉所有的灯最少需要的时间 DP一下到第i层左端点和右端点的最短时间 细节注意一下(比如某层楼上面的楼层都不需要关灯了就可以停下来了) C 每个物品有编号xi和花费ai 若买了n个物品...
阅读(121) 评论(0)

bzoj4527: K-D-Sequence

先特判d=0的情况 然后对于d≠0: 若a[i]和a[i+1]的差不是d的倍数,即a[i]和a[i+1]在模d下不等,那么他们肯定不会在同一个kd串中,将中间断开 于是得到了若干个原串的子串数列中不能有相同的数(还是挺好处理的吧),下文的叙述省略了数列中有相同的数的处理因为每个串内的数在模d下相同,所以先将他们全部/d(这样方便处理) 因为l~r中没有相同的数,那么这个数列若要成为kd数列,...
阅读(103) 评论(0)

GDOI2017游记

真的要盲了Day0: 上午方的不行,看了一遍洲阁筛,感觉出了可能也不太会做= =,于是跑去复SAM,做了一道模板题,然后就翻着各种板子看 下午在车上睡了3h….Day1: 进考场喜闻乐见的发现评测环境有问题,不能用gdb,虽说后来还是解决了 今年的题目感觉画风比去年正常.. 看T1,看完后,子串相关?感觉….是个SAM?常数好像不太行,不管了先跳T2(怎么旁边的dalao已经开始打了…我刚...
阅读(240) 评论(0)

BZOJ3442: 学习小组

最小费用最大流 源连向每个学生流量为k,费用为-Fi 每个学生连向他能去的学习小组,流量为1,费用为0 每个学习小组的支出费用与参加的人数平方相关,所以拆边连向汇(类似石头剪刀布),拆出n条边代表参加的人数为1~n时增加的支出,因为最小费用,所以总是会先选小的边,比如第i条边,选的时候1~i-1一定已经流满了,那这时i的贡献为 C∗i2−C∗(i−1)2=C∗(2∗i−1)C*i^2-C*(...
阅读(133) 评论(0)

BZOJ4205: 卡牌配对

大胆使用渐进复杂度较高的算法… 最大流 要求至多1个属性互质即至少2个属性不互质 设立三类节点(a,b),(a,c),(b,c)代表这两项不互质,枚举a,b,c不互质的公共质因子,因为200以内质数不多,所以大概也就50*50*3个节点 然后每个节点和这三类节点,相符合的话就连边流量1,X类在左边,Y类在右边 源连X类流量1,Y连汇流量1code:#include #includ...
阅读(67) 评论(0)

BZOJ4663: Hack

最小割 要求0-n-1的每一条路径上有且仅有一条被控制的边 正常情况下跑最小割,每条路上是只会割一条的,但是有些非正常情况 要不你们看这篇?这篇有图… 然后…我不知道为什么要这样建图,是怎么想的(有人会了告诉我一声?)…..但是这样建图是对的..因为它能避免所有非法情况… 只处理起点能到的点,最后答案超过inf即无解(终点在环内)code:#include #include<ma...
阅读(90) 评论(0)

BZOJ3482: [COCI2013]hiperprostor

询问不多可以当单次询问做 对于一条A到B的路径,若上面有a条特殊边,他的长度就为ax+b 先将特殊边长视为0,求出f[x][t]表示A到t,走了x条特殊边的最短路 那么A->B=a*x+f[a][B],这些路径的长度对应平面上的若干条直线,a就是这些直线的斜率 如果不存在f[0][B]就有无限种可能值,因为没有上界 否则维护一个凸包就可以求出所有最短路的可能值了code:#include<...
阅读(148) 评论(0)
250条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:75065次
    • 积分:3178
    • 等级:
    • 排名:第10794名
    • 原创:250篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条