http://acm.timus.ru/problem.aspx?space=1&num=1476

由于前一列对后一列有影响,所以需要保持前一列的状态,

但无需用状态压缩来保存(也保存不了) 只需要保存前一列以 k 个0结尾的个数就可以

代码:

import java.math.BigInteger;
import java.util.Scanner; public class Main { /**
* @param args
*/
static final int N = 44;
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger[][] dp = new BigInteger[N][N];
BigInteger[][] d = new BigInteger[N][N];
BigInteger[][] c = new BigInteger[N][N];
for(int i=0;i<N;++i){
for(int j=0;j<N;++j){
dp[i][j]=d[i][j]=c[i][j]=BigInteger.ZERO;
}
}
for(int i=0;i<N;++i){
for(int j=0;j<=i;++j){
if(j==0||i==j){
c[i][j]=BigInteger.ONE;
}
else{
c[i][j]=c[i-1][j].add(c[i-1][j-1]);
}
}
}
Scanner in = new Scanner(System.in); int n=in.nextInt();
int m=in.nextInt();
int k=in.nextInt(); for(int i=0;i<=n;++i){
for(int j=0;j<=i;++j){
for(int l=0;l<=(n-i);++l){
if(i-j<=k){
d[i][j+l]=d[i][j+l].add(c[i][j].multiply(c[n-i][l]));
}
}
}
}
dp[0][0]=BigInteger.ONE;
BigInteger ans=BigInteger.ZERO;
for(int i=0;i<=m;++i){
for(int j=0;j<=n;++j){
if(i==m){
ans=ans.add(dp[i][j]);
continue;
}
for(int l=0;l<=n;++l){
dp[i+1][l]=dp[i+1][l].add(dp[i][j].multiply(d[j][l]));
}
}
}
System.out.println(ans); }
}

1476. Lunar Code的更多相关文章

  1. Java并发包--线程池原理

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509954.html 线程池示例 在分析线程池之前,先看一个简单的线程池示例. 1 import jav ...

  2. MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...

  3. MySQL Error--Error Code

    mysql error code(备忘) 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导 ...

  4. unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5

    unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5 High-performance Unity iOS/Android console built ...

  5. Visual Studio Code 代理设置

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...

  6. 我们是怎么做Code Review的

    前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...

  7. Code Review 程序员的寄望与哀伤

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  8. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM

    刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...

  9. 在Visual Studio Code中配置GO开发环境

    一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...

随机推荐

  1. win7的HOST文件夹具体位置

    win7的HOST文件位置为C:\WINDOWS\system32\drivers\etc\文件夹下,快捷查看方法如下: 1.按win+r,输入C:\WINDOWS\system32\drivers\ ...

  2. idea jrebel6 安装,破解

    一.Setting中在线安装JRebel插件,install 二.拷贝下载的jrebel.rar解压后 把里面内容覆盖IDEA插件安装目录中此插件目录之下 下载:http://pan.baidu.co ...

  3. MySQL索引原理及慢查询优化 转载

    原文地址: http://tech.meituan.com/mysql-index.html MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能 ...

  4. Asp.net管道模型(管线模型)

    Asp.net管道模型(管线模型)   前言 为什么我会起这样的一个标题,其实我原本只想了解asp.net的管道模型而已,但在查看资料的时候遇到不明白的地方又横向地查阅了其他相关的资料,而收获比当初预 ...

  5. hdu4087ALetter to Programmers(三维旋转矩阵)

    参考 三维旋转矩阵 + 矩阵加速 这个还要用到仿射变换. 平移 translate tx ty tz 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1 缩放 scale kx ky ...

  6. 转载ali面

    引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈 ...

  7. [SoapUI] 在SoapUI里用Java语言判断Excel单元格为空或者Null时出错

    我取Excel数据时先判断cell是否为"": if(cellValue != ""){     listNumber.add(i);     cellValu ...

  8. navicat 快捷键

    1.ctrl+q           打开查询窗口 2.ctrl+/            注释sql语句 3.ctrl+shift +/  解除注释 4.ctrl+r           运行查询窗 ...

  9. Mysql 选择合适的数据类型

    一. char 与 varchar char : 长度固定,所以处理的速度比 varchar 快,但浪费储存空间. varchar : 长度可变,列性能较好.并且平均占用空间少于 char. 因此,选 ...

  10. Alpha版本十天冲刺--Day6

    会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 获取帖子接口,url图片解析 无 获取帖子详情接口,发帖接口 这两天都是白天睡大觉,晚上敲代码,感觉得调一下作息了,假期更加爱赖床了,还得继 ...