自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 poj 1988 Cube Stacking【带权并查集】

题意:初始时有N堆砖块,每堆有一个(编号为1-N)。现在有q个操作,操作分2种:M X Y 将含编号X的那堆放置在编号为Y堆的上方C X 含编号为X的砖块下方有多少个砖块思路:在普通并查集的基础上加了两个变量:sum,top。用sum去维护某砖块下方的砖块数(代码实现过程中,实际上当前结点sum值只记录到了它的当前父亲结点fa处的砖块个数,所以查询时需要先更新一下);top维护每个砖块所在...

2019-12-30 21:29:15 238

原创 卢卡斯定理(n≤10^18,m≤10^18,p≤10^5,p为质数)

Lucas定理是用于处理组合数取模的定理,当m,n较大时使用它可以将一个大组合数取模,转化成很多小组合数相乘取模(n<p, m<p)模板:LL Lucas(LL n,LL m,LL p){ if(!m) return 1; return C(n%p,m%p,p)*Lucas(n/p,m/p,p)%p;}例题:P3807 【模板】卢卡斯定理代码:求后面...

2019-12-13 11:14:04 280

原创 逆元线性打表后求大组合数(m≤10^6)

逆元求组合数中作用就是讲公式中的除法取余转化为乘法取余,其实当m≤10^5时,都可以直接暴力求分子中每个因子的逆元(会用到快速幂),这里需要先求出p的欧拉函数值。 此处n,p的值在数据范围(10^18)内就行除了上面的思路,我们也可以O(n)打表得出1!~n!的逆元对p取模后的结果:求逆元的方法总结、打表,这时就不需要用到快速幂求逆元,但此时对n的范围就有要求了:n≤10^6, m≤10^6...

2019-12-13 11:13:53 295

原创 利用n!性质求大组合数(m≤10^5,m≤10^5)【n!中有多少个质因子p】

n!我们知道组合数的结果是一个整数,这个整数可以表示成若干个质因子的乘积,如:12=2×2×4,那么如果我们知道分子、分母中每个质因子出现的次数,就可以很容易得到组合数的值。我们可以在O(logn)O(log{n})O(logn)的复杂度内求出n里面每个质因子出现的次数,那么n!就需要O(nlogn)O(nlog{n})O(nlogn)的复杂度但这里想说的是关于n!的另外一个性质:怎么求n!...

2019-12-13 11:13:02 257

原创 Largest Rectangle in a Histogram(DP!)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506我们要求图中长方形最大面积,我们都知道长方形的面积等于长×宽,那怎么选择长和宽呢?我们的思路是这样子的:我们遍历数组,将当前位置上条形的高度作为长方形的宽,然后向左向右延伸,求出以当前高度能够扩展到的最左端和最右端的位置,确定长方形的长度。最后在这些长方形面积中取一个最大值就行了。但是这样有...

2019-12-01 16:11:32 178

原创 多重背包的 二进制优化 / 转化为有限制的完全背包

多重背包:有n种物品,每个物品的重量为w[i],每个物品的价值为h[i],每种物品有c[i]个。最朴素的做法中,我们把c[i]个物品i看成c[i]个不同的物品,进而转化成了0-1背包。然后在0-1背包的基础上我们还可以进行二进制优化### 二进制优化我们知道:2^0^,2^1^,2^2^,2^3^,,,2^n^可以组成1~2^(n+1)^-1中的任意数(每个数只能用一次)所以我们可以把c[i]个相同的物品,看成这样的几堆物品:10=**1+2+4**+315=**1+2+4+8**36=*

2019-12-01 14:39:51 263

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除