码迷,mamicode.com
首页 > 其他好文 > 详细

have a try

时间:2018-05-02 13:21:20      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:打表   lin   gcd   网络   节点   树节点   去掉   状态   lru   

乱搞:有空可以百度一下
强制根号分类法
强制根号分块法
随机选大点推广法
乱不正常贪心法

http://www.cnblogs.com/onioncyc/p/7909657.html
树状数组倍增,直接加对应c[]
从小到大加不影响LIS

http://www.cnblogs.com/onioncyc/p/7967609.html
入栈+1出栈-1,点到根的路径是前缀和。
子树移动就是区间移动。
在up处更新父亲,分裂合并时的父亲额外更新。
已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。已知编号查排名,统计左子树和左父亲。

http://www.cnblogs.com/onioncyc/p/8092757.html
利用数组的单调性,转移方程就很好看。
max操作转二分覆盖,二分就很好解决了233直接查数字排名。

http://www.cnblogs.com/zsnuo/p/8400720.html
http://www.cnblogs.com/xiao-ju-ruo-xjr/p/8441026.html#3908671
THUWC2018 D2T1
倒着操作,证明一些性质和单调性,然后用平衡树维护。
有空再回来看

http://www.cnblogs.com/onioncyc/p/7640937.html
枚举2^b-1得到公因数包含某个数的子集个数
然后自带容斥即可得到gcd为某个数的子集个数

所有数与n的gcd之和是可以卷积出来的呀(φ*id)。
有种套路要预处理所有素数,这样所有不完全积性函数都可以线性计算出来。
本来要枚举所有因子,通过证明积性函数后可以只枚举素数p^k,降成O(√N)
约数个数也不是很多,通过枚举素数可以快速得到,通过√n会慢一点。
1~10^5有128个约数,1~10^7有448个约数。

BZOJ2957楼房重建
合并区间时,要根据左区间的值在右区间二分得到答案,开一个独立过程calc计算。
复杂度O(n log2n)。
https://www.lydsy.com/JudgeOnline/showsource.php?id=2725632

单调性均摊O(1)。
设出状态,考虑转移就行了。(区间状态)
考虑一个区间内,所有复杂的情况本质上只是两种转移。(那时候的我好自信啊,一点一点调出来这么复杂的题目)
有些东西,想起来很复杂,是真的可以解决(转移)的,不需要特别换方向。

打表确定决策单调性。
待决策部分区间加,然后区间取max得到决策。
证明和重心一样,不符合会移动。
整体标记

接下来最快速度过吧,没那么多时间浪费了,要懂得取舍。

莫名其妙好像十分正确的贪心,选父亲,哦是因为这样不亏……

放缩法:这样做得到的方案虽然不一定满足题意,但最优解一定在方案中,且不满足题意的方案一定不会比最优解小。

1 2 3 4 5 6 7 8 9 10
- - - - - - -
1 2 4 10-8+1

虚树:结构题里存原图和LCA的预处理(这样换成链剖也很方便快捷,注意空间)
DP和建树放在外面,每次将所有点按dfs序排序,相邻点加入lca后去重,然后用栈维护连边。
虚树构造也只能依赖于点数操作,否则复杂度不对。

01数组操作——考虑bitset优化
转化后的矩阵和数字是一样的。
让状态服务于你的转移
一步一步来,一个细节一个细节处理,每一步的成果都有条理的记录下来,想清楚再进下一步,不要乱七八糟的这样写不动。你以为乱七八糟大概知道了就能过样例?想得美。
把东西对状态预处理好,调用。

hash值可以存起来,然后用区间数据结构修改,左区间调到高位去……

不要很表面的想矛盾点,你既然采用了这种操作了,就从这个本质去想了,合并了已经。

先选全部正的,考虑删除,这样的话正权负权都表示为正代价了。
倒过来排序
将一些字符串(数字)贴在trie上,会呈现出每一位相关的明显规律

充电会互相影响……那就改为充不上电吧,分成儿子和父亲各自讨论

PAM中,每个点被访问的次数是它作为其右端点最长回文串的次数,这是要将所有fail树的儿子(包含它的回文串)加上就是出现次数了。
每个点会fail到同右端点更短的回文串嘛,那么所有回文串x就在节点x统计之外,有可能其右端点x不是最长的,那就是所有能fail到它的,加上就好了。
回文树的核心思想是【固定右端点】(而非中心),fail到最大的同右端点回文串。

线段树优化建图
向编号小的权值在一定范围的点连边,就建主席树,每次link之后再新加一条链,这样每次link的就是前缀和(不支持区间的,用主席树是为了前缀link,我们是直接link树节点的)
每个父亲向儿子连边,叶子向点连边,新建的链的叶子向依赖链的叶子连边就行了。

大概这种没点对应一个区间然后选择的问题……要不找方向固定贪心,要么就是网络流啦!

子树DFS序!

树形DP:孩子和父边!

分治任务很重要哦!

重边:防访问父亲if(i^1!=fa)针对边。
自环:初始不添加。

连边减连通块的思想。

容斥就是每个方案有一个01排列,按照1的数量划分成n的系数,那么要求每个1的数量的计算结果恰好为要求的那个系数,即ΣC(n,i)*coef(i)=a[n]。

LRU 枚举最后一个的那啥就行
最后一个到达目标状态就不从自身转移了

提到前面,改变枚举是常用套路。

分成两个分块取值优化,对这东西敏感,因为只和n/d有关。
前缀和是倒三角?乘两倍减中线就是了啊。
枚举gcd。
找卷积对象?相同完全积性函数卷积有奇效啊。
改变枚举对象有奇效——变成枚举倍数或枚举后面的数字。
可以把最前面的Σ去掉变成前缀和,也可以不去掉,可能都能写而且不同写法。

SAM
1.节点是Right集合相同的子串集合
2.每个从根到节点的路径上的字符构成的子串属于这个节点,不过不一定是最长子串,所以前面可能延伸。
3.虚边:后缀子串,fail。
到np的父亲集合。

分块套分块

Parent树的变化只是子树替换。
预处理贡献,直接调用。

have a try

标签:打表   lin   gcd   网络   节点   树节点   去掉   状态   lru   

原文地址:https://www.cnblogs.com/onioncyc/p/8979399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!