网格的铺设问题,怎么解决呢?用C语言实现

Problem Description
有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。

Input
输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列。

Output
输出一共有多少种铺设的方法,每组数据的输出占一行。

Sample Input
3
2
8
12

Sample Output
3
171
2731

0
扫码支付0.1元 ×
其他相关推荐
铺地板问题
有一长度为 N(1&amp;lt;=N&amp;lt;=10)的地板,给定两种不同瓷砖:一种长度为 1,另一种长度为 2,数目不限。要将这个长度为 N 的地板铺满,一共有多少种不同的铺法?例如,长度为 4 的地面一共有如下 5 种铺法:4=1+1+1+1 4=2+1+1 4=1+2+1 4=1+1+24=2+2 编程用递归的方法求解上述问题。 【输入】只有一个数 N,代表地板的长度 【输出】输出一个数,代表所...
算法分析--贪心算法--最小生成树
贪心算法 贪心算法做的选择都是当前状态下的局部最好选择。 每次选择都将问题简化为规模更小的子问题。 优点:简单高效。 缺点:不是对所有问题都能找到整体最优解。 最小生成树问题                                               ...
一道铺地砖问题,关于向上取整算法。
一道铺地砖问题,关于向上取整算法。 标签(空格分隔): 编程错题 C 双学位高级语言程序设计 编程竞赛 原题如下: 【Problem description】 Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion
用单链表解决约瑟夫问题 C语言实现
用单链表解决约瑟夫问题 C语言实现 用单链表解决约瑟夫问题 C语言实现
c语言用数组方法解决约瑟夫环问题
这个题我是用数组下标置0方法做的,类似单链表的性质,这个方法是模拟了游戏过程,是比较笨的代码,喜欢研究的朋友可以用相关算法来实现。时间复杂度为O(n^2),代码注释很详细,基本每一行我都写了注释,稍微有点基础的就可以看的懂
用递归法解决网格走法数目C/C++
用递归法解决网格走法数目C/C++,有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。
线性时间选择算法的分治思想:邮局选址问题和士兵战队问题
一. 实验题目 1. 邮局选址问题 在一个按照东西和南北方向划分成规整街区的城市里,n 个居民点散乱地分 布在不同的街区中。用 x 坐标表示东西向,用 y 坐标表示南北向。各居民点的 位置可以由坐标(x,y) 表示。街区中任意 2 点(x1,y1) 和(x2,y2) 之间的距离可以用 数值|x1-x2|+|y1-y2| 度量。 居民们希望在城市中选择建立邮局的最佳位置,使 n 个居民点到邮局的距离...
深度优先搜索解决迷宫问题(c的实现)
经典栈队列以及深度优先算法的代码例子,便于学习和参考。
C语言,数组实现约瑟夫环问题(两种方法)
约瑟夫环问题:约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。   第一种方法:要求将每次出列的人的序号输出,并输出最后一个出列的人。 代码如下: //c语言用数组实现约瑟夫环 #include #incl
用C语言解决迷宫问题
迷宫问题,需要用到栈结构。
C语言数据结构之管道浅析
管道是什么? 管道是先进先出的数据结构,相当于一个缓冲区; 数据长度一般是1Byte,这里设置管道为512Byte; 管道的作用是? 有时候需要一定长度的数据,不仅仅是1Byte; 实现思路:申请缓冲区 —》使用两个指针分别指向缓冲区的首地址和尾地址,例如begin,end —》要实现随时找到管道中任意一个成员,使用两个指针分别指向第一个成员(head)和最后一个成员(tail) ...
约瑟夫问题解决及实现代码(C语言版)
约瑟夫问题: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他
C语言实现:约瑟夫问题(数组和单链表2种方法)
约瑟夫问题 一个旅行社要从n个旅客中选出一名旅客,为他提供免费的环球旅行服务。旅行社安排这些旅客围成一个圆圈, 从帽子中取出一张纸条,用上面写的正整数m( 报到m时停止报数,报m的人被淘汰出列,然后从他顺时针方向上的下一个人开始重新报数,如此下去,直到圆圈中只剩下一个人, 这个最后的幸存者就是游戏的胜利者,将得到免费旅行的奖励。 输入说明,输入的第一行表示总的旅客数,输入的第二行表示
分治法解决凸包问题(C语言实现)
先预排序,预排序后最左和最右的点肯定是凸包中的点。然后可以递归的从内向外扩展凸包,在当前直线的2侧寻找最高点,最高点肯定在凸包中,这里涉及到一些数学知识: a,首先定义射线p1到p2的左侧:若p1 p2 p构成的顺序是逆时针,称p在射线的左侧 b,三角形p1 p2 p3的面积等于下列行列式的一半: 仅当p3在射线p1p2左侧时这个值才为正。 由此我们很容易求p1,p2左侧的最高点(离直线最远的点,这个点即凸包向外扩展得到的新顶点),得到一个最高点后,就得到了2条新边,继续向外扩展
【C语言】数据结构循环链表解决约瑟夫环问题
循环链表解决约瑟夫环问题 约瑟夫问题 假设有n个人围成一圈,然后对每个人按顺序编号1,2,3,…..,n,规定从1号按顺序开始报数,报到k的人出局,之后下一个人再从1开始报数,报到k的人在出局,一直进行下去,问:最后一个出局者为几号? 样例: 假设有8个人,每次报数报到4的人出局,则过程如下。 四号出局 八号出局 五号出局 二号出局 一号出局 三号出...
C语言数据结构之利用循环链表解决约瑟夫问题
约瑟夫问题:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k...
经典递推:铺地砖(2501)
Tiling_easy version Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6914    Accepted Submission(s): 5394 Problem Description 有一个大小是 2 x
操作系统-生产者与消费者问题的C语言实现
1.模拟用信号量机制实现生产者和消费者问题。 2.设计报告内容应说明: ⑴ 课程设计目的与功能; ⑵ 需求分析,数据结构或模块说明(功能与框图); ⑶ 源程序的主要部分; ⑷ 运行结果与运行情况分析; ⑸ 自我评价与总结:
【c语言】使用数组解决 约瑟夫环问题
由于目前对c语言的学习仅限于数组,指针还不会用。mo'shuo
约瑟夫环问题(结构体指针实现)
#include #include struct node{ int data; struct node *next; }; int main(){ int i,j,k,m,n; struct node *h,*p,*q; scanf("%d%d",&n,&m); h=new node;
经典例题C语言程序解决数学问题
摘自C语言网,猴子吃桃,看看题目是什么样的吧。 题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析: 采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int
C语言实现迷宫问题
C语言编写的一个简单迷宫问题。其中用到了数据结构,相对简单
【JZOJ3807】地砖铺设
Description在游戏厅大赚了一笔的Randy 终于赢到了他想要的家具。乘此机会,他想把自己的房间好好整理一下。 在百货公司,可以买到各种各样正方形的地砖,为了美观起见,Randy 不希望同样颜色的正方形地 砖相邻。所以他找到了Tio 来帮忙解决这件事情。 Tio 很快解决了这个任务。然而,出于某种强迫症,她希望在地上按照长宽划分成网格后,逐行逐 列每一块的颜色组成的序列的字典序最小。
用指针解决约瑟夫问题
其实本文中的链表并不规范,只适用于本题,还有鄙人第一次发文,请多多指教 #include #include using namespace std; class J { public:  J(){};  string name;  J *pre;//前一个人  J *next;//后一个人 }; void Joseph(J *head,int n) {
C语言解决约瑟夫环问题 详细注释
约瑟夫环算法是: n 个人围成一圈,每个人都有一个互不相同的密码,该密码是一个整数值,选择一个人作为起点,然后顺时针从 1 到 k(k为起点人手中的密码值)数数。数到 k 的人退出圈子,然后从下一个人开始继续从 1 到 j (j为刚退出圈子的人的密码)数数,数到 j 的人退出圈子。重复上面的过程,直到剩下最后一个人。/*约瑟夫环*/ #include &amp;lt;stdio.h&amp;gt; #includ...
利用C语言解决实际问题
1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三。 B选手说:我第二,E第四。 C选手说:我第一,D第二。 D选手说:C最后,我第三。 E选手说:我第四,A第一。 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 #include int main() { int a = 0; int b = 0; int c = 0;
C语言实现螺旋矩阵
#include&amp;lt;stdio.h&amp;gt;#define n  8int main(void){ int N = 1, i, j, shift = 0, Dshift = 0; int a[n][n]; while(N &amp;lt; (n*n)) { for(i = 0; i &amp;lt; n - 1 - Dshift; i++) { a[0 + shift][i + shift] = N...
分治法解决凸包问题(用C语言递归调用实现)
利用分治法解决凸包问题,递归调用,功能强悍,自己下载后在机器上跑一下
网格走法数目,c语言
题目描述有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。输入描述:输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。输出描述:输出包括一行,为走法的数目。示例1输入复制3 2 输出复制10解题思路:拿到这道题首先需要注意的是这是一个网格走法数目,所以我...
算法训练 瓷砖铺放
算法训练 瓷砖铺放 问题描述   有一长度为N(1   例如,长度为4的地面一共有如下5种铺法:   4=1+1+1+1   4=2+1+1   4=1+2+1   4=1+1+2   4=2+2   编程用递归的方法求解上述问题。 输入格式   只有一个数N,代表地板的长度 输出格式   输出一个数,代表所有不同的瓷砖铺放方法的总数 样例输入 4 样例输出 5
C语言解决棋盘覆盖问题
棋盘覆盖问题是典型的利用分治法解决问题 把大问题分解成为相同性质的子问题 分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋盘均包含一个特殊方格,从而将原问题分解为规模较小的棋盘覆盖问题。k&amp;gt;0时,可将2^k×2^k的棋盘划分为4个2^(k-1)×2^(k-1)的子棋盘,如图4.11(a)所示。这样划分后,由于原棋盘只有一个特殊方格,所以,这4个子棋盘中只有一个子棋盘包...
用C/C++解决一些数学问题(一)
1:高中有道数学题是求n!的题,意思是求出1*2*3*....*n,现在做一个这样的程序       要求:输入n值(n必须是整形),然后求出n!,需要要将这个功能写入函数,然后直接调用函数       代码如下: #include using namespace std; int fun1(); //函数声明 void main() {
传热学非稳态热传导问题网格划分数值计算(传热学第四版chapter4 4-6)C++源文件
传热学第四版 高等教育出版社 杨世铭 陶文铨 编著 第四章非稳态热传导例题4-6的数值解法的C++源文件,老师要做的大作业,结果可以做出例题里面的等温线图,给以后要做大作业的同学提供一个参考
C语言实现迷宫问题的所有解
迷宫问题所有解:        //迷宫问题解答:                首先需要定义的变量:迷宫M  ,  迷宫的行R=7  ,  迷宫的列C=8  ,  还需要定义一个与迷宫M相同的二维数组t(用来表示迷宫这个格子已经走过了,走过赋值为1)  ,  以及记录方位的二维数组Move[4][2](f方位表示已经在代码中给出注释)  ,  定义一个栈stack[100][2](用来存储路径上...
通过C语言数组解决一些简单的递推数学问题
通过C语言数组解决一些简单的递推数学问题 c语言是一种十分适合解决数学问题的编程语言。其中数组对于解决递推问题有十分优秀的作用。 数组:    数组就是变量的集合,是一种指定义变量的方法。    一维数组:    定义:  类型 数组[数量];//[]里的整数表示变量的数量    int arr[5]《=》int n1,n2,n3,n4,n5;      数组的变量,值也是不确定的,为了安全需要初...
约瑟夫环的C语言链表实现
约瑟夫环的C语言链表实现约瑟夫环在生活中一般为游戏使用代码块linklist.cpp:// linklist.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include "linklist.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { link_plist l = NU
c语言 分治法求解最近点对问题
最近对问题(二维平面上的点),编程实现用分治法求解。 最近点对算法: double cpair2(S) {       n=|S|;       if (n &amp;lt; 2) return 0; 1)、m=S中各点x坐标的中位数;      //构造S1和S2;      S1={p∈S|x(p)&amp;lt;=m},      S2={p∈S|x(p)&amp;gt;m} 2)、d1=cp...
操作系统实验指导书(用c语言实现了操作系统里的几个经典算法!)
本实验报告里有想对应的实验二 批处理系统的作业调度、实验三 进程调度模拟程序、实验四 生产者――消费者问题算法的实现、实验五 银行家算法的实现等几个实验的报告书以及相应的程序代码。全部都是用c实现的,很值得看看!
用栈 求迷宫问题(最短路径和全部路径)
这是数据结构的作业,便找书边看网上,然后自己慢慢写出来的,这里面主要是回溯法。 因为课本上是打印出一条路径,然后我在想怎样能将所有的路径都输出来,方法:就是当求出一条路径后,将出口点变成可以走的点(因为之前将其值变成了-1),并且将栈顶元素出栈,还需要得到现在栈顶元素的i,j,di值,将其赋出来。 这里的思路是这样的,因为找最后一个点的时候是找倒数第二个点的上下左右四个方位,假设说是路径通畅的点...
批处理作业调度问题·优先队列式分支限界法·回溯法
c++实现的批处理作业调度问题·优先队列式分支限界法·回溯法包括了FlowShop和make类模板,有测试数据data
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java的学习问题及解决 java怎么学习呢