06 2018 档案

摘要:状压dp,就是把动态规划之中的一个个状态用二进制表示,主要运用位运算。 这里有一道例题:蓝书P639猛兽军团1 [SCOI2005]互不侵犯 题目: 直接上代码,注释很详细 上面这个代码过于复杂,不好理解,我们换一种写法: 阅读全文
posted @ 2018-06-24 21:45 DukeLv 阅读(334) 评论(0) 推荐(0)
摘要:今天写内网题,连着写了两道区间dp,这里就总结一下。 区间dp思想主要是先枚举f[i][j]中的i,再枚举j,再枚举一个1~j之间的变量k,一般是f[i][j] = max(f[i][j],f[i][k] + f[k][j]);(石子合并) 但是今天遇到的两个都不是这样的。 第一题,复制书稿,洛谷P 阅读全文
posted @ 2018-06-11 22:06 DukeLv 阅读(387) 评论(0) 推荐(0)
摘要:今天兔哥讲了一波莫队,比较有趣,先加一个链接,这是她的教程 rabbithu.cnblogs.com 这里就不详细说了,其实就是两个指针来优化的暴力。一开始排序函数有问题,没用上莫队的核心思想:把查询区间先排序,第一关键字是左指针所在的区间(注意,不是大小),第二关键字是右指针的大小。 然后一点点模 阅读全文
posted @ 2018-06-09 20:45 DukeLv 阅读(679) 评论(0) 推荐(0)
摘要:lucas是求组合数C(m,n)%p,有一个公式:C(m,n) = C(m/p,n/p)*C(m%p,n%p)。 (a*b)%c==a%c*b%c,但是(a/b)%c!=a%c/b%c,所以我们要算b在c意义下的乘法逆元。 一个线性求乘法逆元。a[i] = (p - p / i) * a[p % i 阅读全文
posted @ 2018-06-01 20:07 DukeLv 阅读(325) 评论(0) 推荐(0)