2190 ACM 数学概率论的乘法和加法原则
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2190
思路:明显我们要寻找 边长为n和边长为n-1,n-2,n-3·····的规律,这样得出一个递推公式就能方便的得出f(n)(边长为n的值)
由于只有两种类型的地板砖,2*2 1*1,所以最后加入的一行,可能是1*1的砖块,也可能是2*2砖块的一部分,所以 f(n)就和f(n-1)和f(2)有关
接下来推导:
由数学概论论可知:
两种个情况,不同情况之间用加号
同一情况下,的下一步操作的方法数 之间用乘法
1 第n行放的是1*1的砖块
所以只需要在f(n-1)的基础上放即可,且1*1砖块的方法只有一种
2 第n行放的是2*2砖块的一部分
所以在f(n-2)的基础上放即可,本来有三种的,但是舍弃1*1的情况,因为和上述情况重复,2*2放左边或右边,两种情况
结论:f(n)=f(n-1)*1+f(n-2)*2
代码:
#include<iostream>
#include<cstdio>
using namespace std; int main()
{
int c;
int sch[];
sch[]=;
sch[]=;
sch[]=;
for(int i=;i<;i++)
sch[i]=sch[i-]+sch[i-]*;
cin>>c;
while(c--)
{
int n;
cin>>n;
cout<<sch[n]<<endl;
}
return ;
}
2190 ACM 数学概率论的乘法和加法原则的更多相关文章
- bzoj 1798: [Ahoi2009]Seq 维护序列seq 线段树 区间乘法区间加法 区间求和
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeO ...
- 线性结构2 一元多项式的乘法与加法运算 【STL】
02-线性结构2 一元多项式的乘法与加法运算(20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和 ...
- PTA 02-线性结构2 一元多项式的乘法与加法运算 (20分)
原题地址 https://pta.patest.cn/pta/test/15/exam/4/question/710 5-2 一元多项式的乘法与加法运算 (20分) 设计函数分别求两个一元多项式的 ...
- ACM数学知识体系
在盛情收到学弟邀请给他们整理ACM数学方面的知识体系,作为学长非常认真的弄了好久,希望各学弟不辜负学长厚爱!!!非常抱歉因为电脑全盘格式化好多word.PPT都丢失,我尽量具体地给大家找到各知识点学习 ...
- PTA数据结构 习题3.6 一元多项式的乘法与加法运算 (20分)
一元多项式的乘法与加法运算 https://pintia.cn/problem-sets/434/problems/5865 设计函数分别求两个一元多项式的乘积与和. 时间限制:200 ms 内存限制 ...
- PAT 02-线性结构2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...
- 用分治法实现大数乘法,加法,减法(java实现)
大数乘法即多项式乘法问题,求A(x)与B(x)的乘积C(x),朴素解法的复杂度O(n^2),基本思想是把多项式A(x)与B(x)写成 A(x)=a*x^m+b B(x)=c*x^m+d 其中a,b,c ...
- 1490 ACM 数学
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1490 题意: 给出n*n 的矩阵,选出不同行不同列的n个元素,并求和: 如果所有选法所产生的和相等,则输出 ...
- ACM数学
1.burnside定理,polya计数法 这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结 2.置换,置换的运算 置换的概念还是比较好理解的,< ...
随机推荐
- CF1029E
一个看起来就不对的贪心居然是正解... 但仔细思考一下,这种贪心倒的确找不到反例.. 贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一 ...
- 怎么加密接口防止,API外部调用?
服务器端与客户端各自会存储一个TOKEN,这个TOKEN我们为了防止反编译是用C语言来写的一个文件并做了加壳和混淆处理.在客户端访问服务器API任何一个接口的时候,客户端需要带上一个特殊字段,这个字段 ...
- mysql一列相同另一列相加
select name, sum(number) total from test group by name;
- AI学习吧-登录注册
登录注册注销 如果需要给表设置权限,没有登录就不可以查看,只需要在每个视图函数之前加上Auth_classes=[ ]即可! 增加两张表,做登录认证 #models.py #做登录验证 class U ...
- js两种写法执行速度比较
记录 function test1(){ this.say = function(){} } function test2(){ this.say = function(){} return this ...
- 下载中间件--随机IP代理以及随机User_Agent
下载中间件随机IP代理以及随机User_Agent 1.在settings.py中设置开启代理功能 # 设置下载中间件 DOWNLOADER_MIDDLEWARES = { # 随机的 User-Ag ...
- jquery自定义事件
触发事件: $(document).trigger('REMOVE_WEBSITE_MSG'); 判断消息条数为0,触发这个
- Java实现Redis消息队列
这里我使用Redis的发布.订阅功能实现简单的消息队列,基本的命令有publish.subscribe等. 在Jedis中,有对应的java方法,但是只能发布字符串消息.为了传输对象,需要将对象进行序 ...
- Python_时间复杂度概念
时间频度:一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)(T代表次数,n代表问题规模) 时间复杂度:呈现时间频度的变化规律,记为T(n)=O(f(n)) 指数时间:一个问题求解所需的执行 ...
- Docker 启动tomcat
docker run -d --name jinrong_beijingbank -p 8081:8081 -v /application/docker_hub/java/pypaltform2018 ...