C语言_数学(1)___统计问题(Hdu 2563)

Problem Description

在一无限大的二维平面中,我们做如下假设:

1、  每次只能移动一格;

2、  不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);

3、  走过的格子立即塌陷无法再走第二次;

求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。

Input

首先给出一个正整数C,表示有C组测试数据

接下来的C行,每行包含一个整数n (n<=20),表示要走n步。

Output

请编程输出走n步的不同方案总数;

每组的输出占一行。

Sample Input

2
1
2

这里我们始终定义前为正方向.

我们用 a [ i ] 表示朝前走i步的种类,我们用 b [ i ] 表示朝左(右)走 i 步的种类,

显然 a [ 1 ] = 3,b [ 1 ] = 2;

然后分治的思想:

向前走 i 步(i>1)的种类相当于向前走 i-1 步的种类加上向左、向右走 i-1 步的种类.

数学式子表示就是:  a [ i ] = a [ i-1 ]+2*b [ i-1 ];

向左(向右)走 i 步(i>1)的种类相当于向前走 i-1 步的种类加上向右(向左)走 i-1 步的种类.

数学式子表示就是:  b [ i ] = a [ i-1 ]+b [ i-1 ];

然后递推可得.

代码如下:

#include <stdio.h>
int main()
{
    int a[21]={0,3},b[21]={0,2},i;
    for(i=2;i<21;i++)
    {
        b[i]=a[i-1]+b[i-1];
        a[i]=a[i-1]+2*b[i-1];
    }
    int m,N;
    scanf("%d",&N);
    while(N--)
    {
        scanf("%d",&m);
        printf("%d\n",a[m]);
    }
    return 0;
}

时间: 2024-10-09 15:07:11

C语言_数学(1)___统计问题(Hdu 2563)的相关文章

C语言记忆化搜索___漫步校园(Hdu 1428)

Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校园呈方形布局,可划分为n*n个小方格,代表各个区域.例如LL居住的18号宿舍位于校园的西北角,即方格(1,1)代表的地方,而机房所在的第三实验楼处于东南端的(n,n).因有多条路线可以选择,LL希望每次的散步路线都不一样.另外,他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(

C语言K&R习题系列——统计文档中每个单词所占字母个数,以直方图形式输出

原题: Write a program to print a histogram of the lengths of words in its input. It is easy to draw the histogram with the bars horizontal; a vertical orientation is more challenging. 这也是我第一个过百行的代码(带注释,空格什么的) 主要分两个部分:输入和输出 #include < stdio.h > #define

C语言K&R习题系列——统计一段文字中各个字母出现的频率

原题: /*Write a program to print a histogram of the frequencies of *difficent characters in it inputs */ 这个和上一个类似 输入部分 #include < stdio.h >    #define NUM_CHARS 256    main ( void )  { int c; int done = 0; int thisIdx = 0; long frequrr[NUM_CHARS + 1];

《统计思维程序员数学之概率统计第2版》中英文PDF+数据代码+《面向数据科学家的实用统计学》中英文PDF+源代码+学习总结

作为一个程序员,我认为,不需要把数学全部学完,要选择合适自己的资料. <统计思维:程序员数学之概率统计(第2版)>以程序模拟的方式而不是数学教材上毫无来由的定理解释了大多数统计上的基本概念.<统计思维:程序员数学之概率统计(第2版)>,中文PDF,带书签目录,204页,文字可以复制.<统计思维:程序员数学之概率统计(第2版)>,英文PDF,带书签目录,225页,文字可以复制. 配套python源代码+数据. 下载:https://pan.baidu.com/s/1Jju

pytorch数学运算与统计属性入门(非常易懂)

pytorch数学运算与统计属性入门1.Broadcasting (维度)自动扩展,具有以下两个重要特征:(1)expand (2)without copying data重点的核心实现功能是:(1)在前面增加缺失的维度(2)将其中新增加的维度的size扩展到需要相互运算的tensor维度的same size 图12.broadcasting自动扩展=unsqueeze(增加维度)+expand(维度扩展) 图23.tensor的合并与分割:(1)合并API1)Cat:对数据进行维度上的合并,不

(数学)Knight&#39;s Trip -- hdu -- 3766

http://acm.hdu.edu.cn/showproblem.php?pid=3766 Knight's Trip Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 482    Accepted Submission(s): 106 Problem Description In chess, each move of a knigh

hdu 2563 -统计问题 【递推关系】

统计问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6525    Accepted Submission(s): 3843 链接:hdu 2563 Problem Description 在一无限大的二维平面中,我们做如下假设: 1.  每次只能移动一格: 2.  不能向后走(假设你的目的地是"向上",那么你可以向左走

ACM: HDU 2563 统计问题-DFS+打表

HDU 2563 统计问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u HDU 2563 Description 在一无限大的二维平面中,我们做如下假设: 1.  每次只能移动一格: 2.  不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走): 3.  走过的格子立即塌陷无法再走第二次: 求走n步不同的方案数(2种走法只要有一步不一样,即

统计难题 HDU - 1251(字典树)

统计难题 HDU - 1251 题目链接:https://vjudge.net/problem/HDU-1251 Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.