摘要:
组合公式递推形式:c[i,j]:=c[i-1,j-1]+c[i-1,j]; 遇到动态统计有多少个实数比之前的大可以分成整数和实数,类似的,一些题也可以用同样的方法把数字分成一位一位(比如某到hdu的题Argestes and Sequence)。 要懂得拆∑,结合公式特点。 对于图的处理,如果边数较 阅读全文
摘要:
一、单调队列 在队首队尾同时进行删除,在队尾进行插入。 二、一般性质 1、在原数组中的位置 2、他在动态规划中的状态值 单调队列保证这两个值同时单调(不同时单调的话保证位置单调用bst存状态) 三、一般式 f(x)=opt(const[i]),i=[bound[x],x-1],其中bound[x]随 阅读全文
摘要:
一、 在变化规则相同的情况下加速状态转移; 1、 快速幂 2、 推广,满足两个规则即可: ① 每次的变化规则必须相同; ② 变化规则必须满足结合律。 可用于减少乘法个数或者加法个数 二、 加速区间操作。 在区间操作中运用倍增思想的一般模式: 预处理: 对于区间中每一个点A,记录[A,A+20-1], 阅读全文
摘要:
剩下一点点时间,就来说说最近才会的关于bit的两个妙用。 求一组数的逆序对 求最长不下降序列 其实两个东西思想差不多,就已第一个为例讲讲。 就是所有数排一遍后,再按照原序列顺序(从后往前),做如下操作: 1、1-(这个数排名-1)的区间和,结果加到答案中 2、把这个数排名为+1 操作1、2分别对应区 阅读全文
摘要:
动态规划+kmp+矩阵快速幂 关于这题可以写出一个dp方程(f[i,j]表示准考证前i位中后j位为不吉利的数字的前j位的情况的个数) f[i,j]=Σf[i-1,k],其中j表示不吉利数字前k个数字加上某个数字后变成为不吉利数字的前j位(比如不吉利数字122123,然后现在k=5,那么如果填个3,j 阅读全文
摘要:
题解:hzw大神的博客说的很清楚嘛 http://hzwer.com/1941.html 朴素的做法就是每个点如果它不是墓地那么就可形成十字架的数量就是这个c(点左边的树的数量,k)*c(点右边的树的数量,k)*c(点上边的树的数量,k)*c(点下边的树的数量,k)。这样的话要枚举每个点,复杂度很明 阅读全文
摘要:
今天有看了一道dp题,发现好像裸不能过,应该是要斜率优化,结果发现自己那点傻×智商早把这东西忘得差不多,而且当时也是有点乱不是弄得很懂。于是又花了一个早上来整理下。 《用单调性优化动态规划》 这个东西的话很好。但是由于我蒟蒻所以看不懂。先找了模板题到网上找题解,然后跟着题解自己推。那么我就用《[ZJ 阅读全文
摘要:
又颓废了一个下午,最近撸mc撸到丧失意识了,玩的有点恶心,于是找水题做,瞧不起颓废的自己啊。 another水题。 这题题意很明显啦,就是找数字排列后组成的数去mod d=0后有多少种。 普通的搜索的话,是会tle的(应该是o(n!)没错?)。注意到长度n还是比较小的,于是想到状压dp。 状态就是每 阅读全文
摘要:
这道题的思路挺简单的……就是可以证明如果要覆盖一个区域内的点,那么一定有一个正方形在这“区域内的点所围成的最大矩形的四个角中的一个”(不要吐槽很多的“的”……),对于长度r是否可以覆盖整个区域内的点,只需要先枚举第一个矩形在“区域内的点所围成的最大矩形的四个角中的哪一个”,然后再枚举下一个点在“区域 阅读全文
摘要:
具体可以去跪《浅谈用极大化思想解决最大子矩形问题》(p.s. 蒟蒻跪了还是很晕,不过想到之前usaco好像是最后一章的一道题……看了下代码顿然醒悟) 也就是如果用o(nm)的方法维护一个极大矩阵?其实很简单,按行处理,维护u[],l[],r[](向上,向左,向右)每一行先预处理处理出这行中每一个点向 阅读全文