1476. Lunar Code
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的更多相关文章
- Java并发包--线程池原理
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509954.html 线程池示例 在分析线程池之前,先看一个简单的线程池示例. 1 import jav ...
- MYSQL ERROR CODE 错误编号的意义
mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...
- MySQL Error--Error Code
mysql error code(备忘) 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导 ...
- unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5 High-performance Unity iOS/Android console built ...
- Visual Studio Code 代理设置
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM
刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...
- 在Visual Studio Code中配置GO开发环境
一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...
随机推荐
- FastReport使用DataSet作数据源
1.打开FastReport的设计器, 2.选择[File]->[New] 新建FastReport模板. 3.选择[View]->[Data],显示如下,导出Dictionary,保存. ...
- [转](六)unity4.6Ugui中文教程文档-------概要-UGUI Animation Integration
5.Animation Integration(动画集成) 动画允许控件的所有状态之间相互转换,充分使用unity的动画系统.这是最强大的的转换模式的在处理很多属性的同时可以进行动画. 要使用动画转换 ...
- destoon系统中get_maincat的用法及解释
get_maincat函数的用法, 如get_maincat(0, $mid, 1),其中第一.二.三个参数分别表示什么? 第一个参数代表parentid 第二个参数代表所有的分类 第三个参数 代表 ...
- &和&&
int j = 5,k = 3; if(!(j==k) && (j == 1 + k++ )) { } System.out.println(j); System.out.printl ...
- 这是一个比较全的Android UI 组件
Android组件及UI框架大全 原文地址:http://blog.csdn.net/smallnest/article/details/38658593 Android 是目前最流行的移动操作系统 ...
- JavaScript中的数组遍历forEach()与map()方法以及兼容写法
原理: 高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是 ...
- VR视频外包公司(长年承接虚拟全景外包、虚拟现实视频外包)
承接VR视频外包(虚拟全景外包),虚拟现实视频外包(北京公司) 我们制作各类型VR全景虚拟现实,增强现实视频制作.录制等项目! 品质保证,售后完备. 我们团队成立于2011年10月,是一个专业从事严肃 ...
- md语法之行内代码和代码片续集
md语法之行内代码和代码片 一行之内嵌入一小段代码, 简称行内代码. 其方法为: 用撇号把代码围起来. 比如: import numpy as ny就可以了. 代码片的方法: 三个连续的撇号+pyth ...
- 自动生成.py文件头部的C语言小程序
每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...
- Android热修复之微信Tinker使用初探
文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/ ...