HDU2067 小兔的棋盘
题目链接
思路: ①dp ②卡特兰数
①:画图,取右下三角形分析,每次都只能向右或向上走。如图所示:
说明:蓝色是初始化, 黑色是行列号,紫色是 该点=左点+下点
所以状态转移方程为 dp[i][j] = dp[i][j-1] + dp[i+1][j];
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;long long dp[40][40];int main() {int n, cnt = 1;while(~scanf("%d", &n) && n != -1) {memset(dp, 0, sizeof(dp));//初始化for(int j = 1; j <= n+1; j++) //初始化dp[n+1][j] = 1;for(int i = n; i >= 1; i--) {for(int j = n+2-i; j <= n+1; j++) {dp[i][j] = dp[i+1][j] + dp[i][j-1];}}printf("%d %d %lld\n", cnt++, n, dp[1][n+1]*2);//2倍 爆int}
}
②:卡特兰数
卡特兰数经典例子:扫描01串,任意位置 保证经过1的个数大于等于0的个数。还有左右括号,进栈出栈问题,这里转化为卡特兰数是因为说了不能越过对角线,暗含的意思就是任意位置,向右走的得大于等于向上走的。
AC代码:
import java.math.BigInteger;
import java.util.Scanner;public class Main {static BigInteger catalans[] = new BigInteger[10010];//开数组static BigInteger four = new BigInteger("4");//好用static BigInteger tow = new BigInteger("2");static BigInteger one = new BigInteger("1");public static void init() {//初始化函数catalans[1] = new BigInteger("1");for(int i = 2; i < 10010; i++) {//这里真的酷!catalans[i] = catalans[i-1].multiply(four.multiply(BigInteger.valueOf(i)).subtract(two)).divide(BigInteger.valueOf(i+1));}}public static void main(String[] args) {init();Scanner scanner = new Scanner(System.in);//输入处理while(scanner.hasNext()) {int n = scanner.nextInt();//输出也好用System.out.println(catalans[n].divideAndRemainder(new BigInteger("1000000007"))[1]);}}
}
看到了这位大佬的博客,燃起了我心中的Java 链接
第一个AC的Java代码,心得:
下载编译器,JDK,(汉化包没弄好),知道了如何编写,提交的时候要改成Main,不要package。
以后大数就用JAVA了。
转载于:https://www.cnblogs.com/ACMerszl/p/9572958.html
HDU2067 小兔的棋盘相关推荐
- HDU2067——小兔的棋盘(迷宫,动态规划,卡特兰数)
Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0,0)走到终点(n,n)的最 ...
- 杭电2067小兔的棋盘
小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 小兔的棋盘 (卡特兰数) 递推动规
小兔的棋盘 Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间, ...
- 第5周作业(杨辉三角形,队列元素逆置,银行排队——队列,整数划分问题,买票问题——卡特兰数,小兔的棋盘——卡特兰数)
一.杨辉三角形 [问题描述]杨辉三角形的打印,请用循环队列实现.不采用"循环队列",不给分. [样例输入] 4 [样例输出] 1 1 1 1 2 1 1 3 3 1 #includ ...
- 杭电oj-2067 小兔的棋盘(卡特兰数)
杭电oj-2067 小兔的棋盘(卡特兰数) Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天 ...
- 小兔的棋盘(HDU-2067)
Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0,0)走到终 ...
- 小兔的棋盘(卡特蘭數)
Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0,0)走到终 ...
- HDU-2067-小兔的棋盘(dp)
小兔的棋盘 Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0 ...
- HDU-2067-小兔的棋盘
转载自 ______________白白の屋 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2067 这个题目,题意都没有弄明白,有点难度啊!这个题目是 ...
最新文章
- bzoj3993 [SDOI2015]星际战争
- 离散数学及其应用第6版中文版勘误
- SQL Server数据库中、获得刚插入新记录的自动ID号
- [转] VS2010中VC9.0Runtime与VC10.0Runtime在win7上装不上提示error code 1603
- 【Python】Python figure显示的两种方式
- 微软发布的两个MSF过程指导(Process Guidance)
- (36)FPGA打N拍设计(第8天)
- 神牛驾到!James B. Orlin 的 O(nm)最大流算法论文翻译!!
- 网管学习笔记-hybrid口配置
- mysql 事务不生效_@Transactional事务不生效的几种解决方案
- 数据分析最具价值的49个案例(建议收藏)
- 转:用友华表Cell报表面面观
- 关于计算机听课如何做笔记,如何高效地听课记录笔记
- 从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)...
- 微软计算机电源怎么接,电源线,详细教您电脑电源线怎么接
- 快学Scala 学习笔记-1: (第一章到第三章)
- DIYGW-UI-PHP是一款基于thinkphp framework和 element admin开发而成的前后端分离系统
- 池州计算机一级考试试题题库,池州科目一考试题库
- 亲测,idea切换分支异常:error: The following untracked working tree files would be overwritten by checkout
- 【论文】文本相似度计算方法综述
热门文章
- 如何在Eclipse里显示BPMN格式的流程图
- 自己开发的在线视频下载工具,基于Java多线程
- Jerry的WebClient UI 42篇原创文章合集
- final关键字_Java中的final关键字
- 取0-1中间任意数java_java – 找到一个整数n 0,其中包含以下三个条件
- centos 6.5 openldap php,centos6.5安装openldap+phpldapadmin
- 工业机器人焊钳制作_一种工业焊接机器人及其冷却装置的制作方法
- flutter打包的app有多大_Flutter原生混合开发
- oracle定时任务会漂移,定时任务与手动执行脚本时的一个重要注意事项
- eclipse 配置java路径_如何在eclipse的配置文件里指定jdk路径