题目链接

Problem Description

小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!

Input

每次输入一个数n(1<=n<=35),当n等于-1时结束输入。

Output对于每个输入数据输出路径数,具体格式看Sample。

Sample Input

`1

3

12

-1`

Sample Output

`1 1 2

2 3 10

3 12 416024`

题目分析:

对于一个n*n的方格,我们要考虑从它的左上角走到右下角,但是在走的过程中不能够穿越对角线,也就意味着在走的时候只能够向右或则向下走。同时为了优化代码的运行时间,我们还应该注意到,对于对角线来说,对于对角线右上的一条路径,我们总能够在对角线的左下找到一天对称的路径,所以我们只需要求出对角线一边的路径即可。

现在我们要走从(0,0)点走到(n,n)点,我们先把此方格扩展第0行和第0列,我们以右上角为例。

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
long long int a[37][37]={0};
a[0][0]=0;//[0][0]点为起始点,没有点数可以到达
for(int i=1;i<=35;i++)
a[0][i]=1;//其余的第0行的每个点,都只能够是上一点向右走到达的,所以都仅有一条路径
for(int i=1;i<=35;i++)
for(int j=i;j<=35;j++)//我们仅需要考虑上三角形即可
{
if(i==j)
a[i][j]=a[i-1][j];//对角线上的点,只能够是上面一个点向下走得到
else
a[i][j]=a[i-1][j]+a[i][j-1];//其余的点则可以是上面(左面)的点向下(向右)走得到
}
int n,num=0;
while(~scanf("%d",&n)!=EOF&&n!=-1)
{
num++;
printf("%d %d %lld\n",num,n,2*a[n][n]);
}
return 0;
}

HDU 2067 小兔的棋盘 (模拟)的更多相关文章

  1. HDU 2067 小兔的棋盘 (卡特兰数)

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. HDU——2067小兔的棋盘(卡特兰数&递推DP)

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  3. HDU——2067 小兔的棋盘

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. HDU 2067 小兔的棋盘

    题解:卡特兰数的几何意义,所以答案就是卡特兰数的两倍 #include <cstdio> #include <iostream> using namespace std; #d ...

  5. HDU 2067:小兔的棋盘

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  6. 小兔的棋盘(hdu2067)

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  7. 小兔的棋盘(hdu2067)

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. hdu2067 小兔的棋盘

    小兔的棋盘 时间限制:1000/1000 MS(Java / Others)内存限制:32768/32768 K(Java / Others)总提交内容:13029接受的提交内容:6517 问题描述 ...

  9. hdu_2067_小兔的棋盘

    小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n) ...

随机推荐

  1. bl bl bl bl bl

    package com.dh.activiti; import org.springframework.web.servlet.HandlerInterceptor; import org.sprin ...

  2. 小程序获取access_token

    <?php //小程序appid $appid = 'wx79d7c348d19f010c'; //小程序 APPSecret 密钥 $appsecret = 'd624aca86d0350ee ...

  3. 桥接,NAT,Host Only的区别

    桥接,NAT,Host Only的区别   一.Brigde——桥接 :默认使用VMnet0fish批注:只要在虚拟机中将IP设对,即使宿主机的IP是错的,也可以通信.但是如此物理网卡被禁用了,则不能 ...

  4. Halcon 笔记1

    Halcon Example位置: C:\Users\Public\Documents\MVTec\HALCON-13.0\examples 安装位置:C:\Program Files\MVTec\H ...

  5. Linux下objdump查看C程序编译后的汇编代码

    http://m.blog.csdn.net/article/details?id=47747047 Uboot中start.S源码的指令级的详尽解析 http://www.crifan.com/fi ...

  6. pixi.js 微信小游戏 入手

    pixi是什么?一款h5游戏引擎 优点:简单简洁性能第一 缺点:大多数用的国产三大引擎,pixi资料少,工具少, 为什么学,装逼 用pixi开发小游戏行吗? 行.但要简单处理下 下载官网上的 weap ...

  7. Js 中实现重定向的几种方式

    之所以要总结这个,是因为在项目中使用了 AJAX,当请求成功时需要重定向到另一个页面. 1 . <script type="text/javascript"> wind ...

  8. urllib2 request 模拟伪装浏览器

    直接上代码吧 # -*- coding:utf-8 -*- import urllib2 import random url = "http://www.baidu.com/" # ...

  9. java 集合 父类的使用子类的方法时候 底层自动转型为子类的数据类型

    跟继承多态不一样 继承多态需要显示转型

  10. bzoj1211-树的计数

    题意 给出 \(n\) 和长度为 \(n\) 的数列 \(d\) 表示每个点的度数,问有多少颗满足要求的树. 分析 这题是prufer编码的应用. prufer编码是对一个带标号无根树的刻画,生成方式 ...