poj 2515 差分序列,排列组合
大神博客链接 http://blog.csdn.net/kksleric/article/details/8021276
这道题的差分序列从没看过,公式题。
先构造从0到m的第p阶差分序列,算出0^p,1^p,...,p^p,填入表的第一行;
然后前向差分,求出以下所有(p-1)~1阶部分的差分表,差分表的最左边一竖行记作C0、C1...Cp。
令C[n+1][1]=n,用递推构造C[n+1][1]~C[n+1][p+1]的组合数打个一维表C[];
最后利用C0*C[1]+C1*C[2]+...+Cp*C[p+1]得出答案...
Orz
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Scanner; public class Main {
Scanner scan=new Scanner(System.in);
PrintWriter out=new PrintWriter(System.out);
BigInteger c[]=new BigInteger[105];
BigInteger h[][]=new BigInteger[105][105];
BigInteger n,re;
int m; void getc(){
c[1]=n;
for(int i=2;i<=m+1;i++)
c[i]=c[i-1].multiply(n.subtract(BigInteger.valueOf(i-1))).divide(BigInteger.valueOf(i));
} void run(){
int cas=scan.nextInt();
while(cas-- >0){
n=scan.nextBigInteger().add(BigInteger.ONE);
m=scan.nextInt();
getc();
for(int i=0;i<=m;i++)
h[0][i]=BigInteger.valueOf(i).pow(m);
for(int i=1;i<=m;i++)for(int j=0;j<=m-i;j++)
h[i][j]=h[i-1][j+1].subtract(h[i-1][j]);
re=BigInteger.ZERO;
for(int i=0;i<=m;i++)
re=re.add(c[i+1].multiply(h[i][0]));
out.println(re);
out.flush();
}
}
public static void main(String[] args) {
new Main().run();
}
}
poj 2515 差分序列,排列组合的更多相关文章
- POJ 2249-Binomial Showdown(排列组合计数)
Binomial Showdown Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18457 Accepted: 563 ...
- POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...
- 学习sql中的排列组合,在园子里搜着看于是。。。
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...
- .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)
今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...
- 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...
- 【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成
本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...
- 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...
- hdu1521 排列组合(指数型母函数)
题意: 有n种物品,并且知道每种物品的数量ki.要求从中选出m件物品的排数. (全题文末) 知识点: 普通母函数 指数型母函数:(用来求解多重集的排列问题) n个元素,其中a1,a2, ...
- [leetcode] 题型整理之排列组合
一般用dfs来做 最简单的一种: 17. Letter Combinations of a Phone Number Given a digit string, return all possible ...
随机推荐
- Python2 下 Unicode 的一个小bug
关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题). 在有时候我们去爬取网页或者调用一些第三方库获取文本的时候, ...
- LinkedList实现队列和堆栈的代码
package 集合; import java.util.LinkedList; /* *队列:先进先出 *把romovelast改成romoveFirst就成了堆栈 先进后出 * * */publ ...
- Struts2基础数据校验和框架校验
一:三种校验的方式 1.用validate()方法实现数据校验 2.用execute()方法实现数据校验 3.用validateXxx()方法实现数据校验 1.用validate()方法实现数据校验 ...
- JavaScript 实现彩票中随机数组的获取
1.效果图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- IE浏览器测试
http://www.iefans.net/ http://ie8.00791.com/ https://www.browserstack.com/http://browserhacks.com/
- How to use aws CloudFront for CDN
How to use aws CloudFront for CDN 1. create a new distribution in AWS cloudfront service, select alt ...
- webbrowser 内核切换
修改注册表位置: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER ...
- LeetCode记录(1)——Array
1.Two Sum naive 4.Median of Two Sorted Arrays 找两个已排序数组的中位数 直接数可以过,但很蠢,O(m+n)时间 class Solution { publ ...
- easyui 分页 MVC
View <script type="text/javascript"> var dd; var grid; $(function () { var queryData ...
- 使用async 和 await方法来
先看直接的代码请求方式地啊: 这里是我们同步方法的实现: using System; using System.Collections.Generic; using System.Diagnostic ...