UVALive 7360 Run Step (JAVA阶乘求组合数)
来源:互联网 发布:mac电脑死机怎么办 编辑:程序博客网 时间:2024/06/05 06:59
大体题意:
给你一个s,要求拆成2和1的和的形式,要求2的个数是偶数个,1的个数是偶数个,2不比1少,2和1的和为s
求方案数:
思路:
暴力求解即可! 直接枚举2的个数,在枚举1的个数
比如说2有m 个 1有n 个,那么这一组的答案就是( n+m)! / ((n!)*(m!) )
没有细想,直接用java大数了!
但也有教训,对java理解太少, 开数组竟然要用new,试了半小时= = !
import java.util.Scanner; import java.math.BigInteger; public class Main{ // @SuppressWarnings("null")//@SuppressWarnings("null")public static void main(String[] args){ Scanner sc = new Scanner(System.in); BigInteger ans,shang,xia,xia2; //BigInteger a73 = BigInteger.valueOf(10001);// BigInteger a137 = BigInteger.valueOf(137); int T ; T = sc.nextInt(); BigInteger dp[] = new BigInteger[101]; for (int i = 0; i < 101; ++i)dp[i] = BigInteger.valueOf(0); int sum2 = 0,sum1 = 0; for (int s = 2; s <= 100; ++s){ for (sum2 = 0;sum2*2 <= s; sum2+=2){ for (sum1 = 0; sum1 <= sum2; sum1 += 2){ if (sum1 + sum2*2 != s)continue; shang = BigInteger.valueOf(1); xia = BigInteger.valueOf(1); xia2 = BigInteger.valueOf(1); for (int j = 1; j <= (sum1+sum2)/2; ++j){ shang = shang.multiply(BigInteger.valueOf(j)); } for (int j = 1; j <= sum1/2; ++j){ xia = xia.multiply(BigInteger.valueOf(j)); } for (int j = 1; j <= sum2/2; ++j){ xia2 = xia2.multiply(BigInteger.valueOf(j)); } ans = shang.divide(xia.multiply(xia2)); ans = ans.multiply(ans); dp[s] = dp[s].add(ans); } } //System.out.println(s + " " + dp[s]);; } for (int kase = 1; kase <= T; ++kase){ String k ; int s = 0; k = sc.next(); s = sc.nextInt(); //if (dp[s] != null) System.out.println(k + " " + dp[s].toString()); //else System.out.println(k + " " + 0); } } }
0 0
- UVALive 7360 Run Step (JAVA阶乘求组合数)
- UVA 7360 run step(组合数学)
- HDU 1261 字串数(大数阶乘 除法 组合 java)
- 求两个数的阶乘及其组合数
- UVALive - 4845 组合数
- 第二周上机任务2-1---用自定义函数实现求阶乘(组合数求解)
- 【UESTC】1423 - Run Step(打表 & 组合)
- Java,求一个数的阶乘
- 求组合数(数学)
- 求组合数(模板)
- 求字符串的len组合数(java程序)
- 求一个整数的组合数算法(java)
- 第二周上机任务2-1--用自定义函数实现求阶乘(组合数求解 -- 改进版)
- 用递归求既阶乘求m n的组合数
- 组合数+二项式反演(容斥)-UVALive
- UVALive 7962|Gym 101201K|Tournament Wins|概率期望|组合数求对数
- JAVA实现求五个数阶乘之和 小实例
- Java之递归求任意数的阶乘
- 51nod 大数加法
- org.hibernate.DuplicateMappingException: dupicate import
- 开山----作业1
- UITabBarController:tab bar 的 image 太大、不清晰的解决方法
- 【Java】整理树的几种遍历方式总结
- UVALive 7360 Run Step (JAVA阶乘求组合数)
- 占位
- 占位
- 占位
- 占位
- 占位
- 占位
- 占位
- 占位