组合数学
组合数学
香蕉君
Heros come and go,but legends are forever.
展开
-
POJ3090,Visible Lattice Points(GCD)
POJ3090,Visible Lattice Points题意:在一个直角坐标系的第一象限上有类似下面的图。有的点可以从原点直接看到,有的店恰好被其他的点挡住。给一个n,代表N*N的范围。求,范围内有多少个这样的点可以直接被看到。解:被遮住的点有一个共同点,假设点为(x,y)(x,y)(x,y),那么GCD(x,y)=d,d>1GCD(x,y)=d,d>...原创 2018-08-28 17:07:23 · 218 阅读 · 0 评论 -
HDU2049 不容易系列之(4)——考新郎
不容易系列之(4)——考新郎Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39432 Accepted Submission(s): 14550Problem Description国庆期间,省城HZ原创 2017-08-18 17:36:06 · 293 阅读 · 0 评论 -
Choose and Divide,Uva10375(数论之分解质因数)
图片出自Uva截图。题目大意:已知C( m,n ) = m!/( n!( m-n )! ) ,输入p,q,r,s( p>=q,r>=s,p,q,r,s解题思路:直接计算乘法结果太大,计算机不能存储,但是最终的结果是可以存储的。因此采用质因数分解法,将所有的要计算的数分解成素因数的形式,乘法即变成了素因数的幂的和。除法变成了素因数的幂的差。最后将所有的素因数全部相乘得到结果。分原创 2017-08-24 14:17:57 · 317 阅读 · 0 评论 -
组合数,快速幂,扩展欧几里得及其求逆元模板
组合数,快速幂,扩展欧几里得及其求逆元模板//组合数打表:const int maxk = 2000 + 5;LL C[maxk][maxk];void table_C(){ memset(C, 0,sizeof(C)); C[0][0] = 1; for(int i = 0; i <= maxk-5; i++){ C[i][0] = C[i][i] =原创 2017-12-10 16:20:56 · 238 阅读 · 0 评论 -
容斥原理——Uva11806-Cheerleaders
vjudge链接:Uva11806-Cheerleaders 题目大意:给一个 n∗mn*m 的矩形网格放置 kk 个相同的石子;有多少种组合。每个方格最多放一个石子,所有石头都要放置完,并且第一行,最后一行,第一列,最后一列都一定要有石子。 求这种情况讨论的话十分麻烦,但是可以考虑间接的求取,比如:求第一行,最后一行,第一列,最后一列都没有石子的情况就很简单,就是组合数 C((m−2)×(n−原创 2017-12-10 23:33:45 · 232 阅读 · 0 评论