不容易系列之(3)—— LELE的RPG难题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 46123    Accepted Submission(s): 18470

Problem Description
人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:

有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

以上就是著名的RPG难题.

如果你是Cole,我想你一定会想尽办法帮助LELE解决这个问题的;如果不是,看在众多漂亮的痛不欲生的Cole女的面子上,你也不会袖手旁观吧?

 
Input
输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50)。
 
Output
对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。
 
Sample Input
1
2
 
Sample Output
3
6
 
Author
lcy
代码:
 //当n时,a[n]等于n-1时符合条件的末尾再加上一个不和第一个,最后一个一样的颜色 + n-1时最后一个等于第一个的末尾加上另外两种颜色中的一种,
//而n-1时最后一个等于第一个的数量等于n-2时符合条件的末尾加上与第一个相同的颜色,就是n-2时的数量
//a[n]=a[n]+a[n-2]*2;
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
long long a[];
a[]=;a[]=;a[]=;
for(int i=;i<=;i++)
{
a[i]=a[i-]+a[i-]*;
}
while(scanf("%d",&n)!=EOF)
{
printf("%lld\n",a[n]);
}
return ;
}

Queuing

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4837    Accepted Submission(s): 2144

Problem Description
Queues
and Priority Queues are data structures which are known to most
computer scientists. The Queue occurs often in our daily life. There are
many people lined up at the lunch time.

  Now we define that ‘f’ is short for female and ‘m’ is short for male. If the queue’s length is L, then there are 2L
numbers of queues. For example, if L = 2, then they are ff, mm, fm, mf .
If there exists a subqueue as fmf or fff, we call it O-queue else it is
a E-queue.
Your task is to calculate the number of E-queues mod M with length L by writing a program.
 
Input
Input a length L (0 <= L <= 10 6) and M.
 
Output
Output K mod M(1 <= M <= 30) where K is the number of E-queues with length L.
 
Sample Input
3 8
4 7
4 8
 
Sample Output
6
2
1
 
Author
WhereIsHeroFrom
题意:
一串字符串全部由m,f组成,问当字符串的长度为n时,字符串中不含有fmf,fff,子串的字符串有多少种。
代码:
 //当长度为n时,可以由长度为n-1的后面加上m,如果要在长度为n-1的串后面加上f,就要考虑,**********mf+f和**********mm+f,(****fmf,****fff不行)
//两种情况,后一种情况长度为n-3时加上他就行,前一种情况第n-3位只能是m所以长度为n-4时再加上他就行。数据太大不能算完之后再取模。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[];
int main()
{
int l;
int m;
while(scanf("%d%d",&l,&m)!=EOF)
{
a[]=;a[]=;a[]=;a[]=;
if(l>=)
{
for(int i=;i<=l;i++)
{
a[i]=a[i-]+a[i-]+a[i-];
a[i]%=m;
}
printf("%d\n",a[l]);
}
else printf("%d\n",a[l]%m);
}
return ;
}

Tiling_easy version

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7424    Accepted Submission(s): 5756

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
 
代码:
 //水题浪费了那么多时间,最后位置放2*1时,最后位置放2*2时(2*2可以竖着也可以横着),a[n]=a[n-1]+a[n-2]*2;
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long a[];
int main()
{
a[]=;a[]=;
for(int i=;i<=;i++)
a[i]=a[i-]+*a[i-];
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%lld\n",a[n]);
}
return ;
}

悼念512汶川大地震遇难同胞——重建希望小学

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6486    Accepted Submission(s): 4331

Problem Description
下面是512汶川大地震部分受灾学校伤亡情况(惨痛!!)

1、 四川省都江堰市 聚源中学
伤亡情况:遇难学生人数(含失踪)320
详细说明: 一栋教学楼被震垮,该楼18个班420多名学生被埋,截至目前仅有不到100名获救。
2、 四川省绵阳市 北川县北川中学
伤亡情况:遇难学生人数(含失踪)1200多人
详细说明:学校教室损毁情况严重,六至七层高的主教学楼已经垮塌得只有一人多高,其他两个教学楼和宿舍也有不同程度垮塌
3、四川省绵阳市 北川县曲山小学(绵阳市示范小学)
伤亡情况:遇难学生人数(含失踪)698人
详细说明:学校位于北川县郊一公里处的任家坪镇,在校师生人数 1003人,地震使学校一座五层教学楼的整体倒塌,只剩下了一层
4、四川省绵阳市 北川县曲山幼儿园
伤亡情况:在校师生人数500多,仅生还20余人
详细说明:学校位于绵阳市北川县曲山镇危家巷,曲山幼儿园及学前班500多名学生被滑坡气浪推移20多米,教学大楼像竹编一样倒下,整体向外挪出五十公分仅凭肉眼根本无法作出判断这是四层楼……
5、四川省绵阳市 北川县茅坝初中
伤亡情况:在校师生人数240多,仅生还20余人
详细说明:教室被泥石流掩埋,学校只剩一根歪歪斜斜的旗杆和一面鲜艳的五星红旗……
…..

为什么会有这么多的学校伤亡惨重?也许有很多值得我们调查的东西。但对于我们来说,当前最紧迫的任务是重建学校,以便让幸存的学生早日走进课堂。
这不,一所由社会各界捐款修建的希望小学马上就要竣工了!学校教室的长度为n米,宽度为3米,现在我们有2种地砖,规格分别是1米×1米,2米×2米,如果要为该教室铺设地砖,请问有几种铺设方式呢?

 
Input
输入数据首先包含一个正整数C,表示包含C组测试用例,然后是C行数据,每行包含一个正整数n(1<=n<=30),表示教室的长度。
 
Output
对于每组测试数据,请输出铺设地砖的方案数目,每个输出占一行。
 
Sample Input
2
2
3
 
Sample Output
3
5
 
Author
lcy
 
 跟上一题做法一样,数据一样。

HDU2045/*HDU2604/*HDU2501/HDU2190 递推的更多相关文章

  1. [原]hdu2045 不容易系列三——LELE的RPG难题 (递推方程)

    本文出自:blog.csdn.net/svitter 原题:http://acm.hdu.edu.cn/showproblem.php?pid=2045 题意:中文不用我说了吧. 这个题目的关键就在于 ...

  2. HDU2604:Queuing(矩阵快速幂+递推)

    传送门 题意 长为len的字符串只由'f','m'构成,有2^len种情况,问在其中不包含'fmf','fff'的字符串有多少个,此处将队列换成字符串 分析 矩阵快速幂写的比较崩,手生了,多练! 用f ...

  3. hdu 2044-2050 递推专题

    总结一下做递推题的经验,一般都开成long long (别看项数少,随便就超了) 一般从第 i 项开始推其与前面项的关系(动态规划也是这样),而不是从第i 项推其与后面的项的关系. hdu2044:h ...

  4. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

  5. 从一道NOI练习题说递推和递归

    一.递推: 所谓递推,简单理解就是推导数列的通项公式.先举一个简单的例子(另一个NOI练习题,但不是这次要解的问题): 楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可 ...

  6. Flags-Ural1225简单递推

    Time limit: 1.0 second Memory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to ...

  7. 利用Cayley-Hamilton theorem 优化矩阵线性递推

    平时有关线性递推的题,很多都可以利用矩阵乘法来解决. 时间复杂度一般是O(K3logn)因此对矩阵的规模限制比较大. 下面介绍一种利用利用Cayley-Hamilton theorem加速矩阵乘法的方 ...

  8. 【66测试20161115】【树】【DP_LIS】【SPFA】【同余最短路】【递推】【矩阵快速幂】

    还有3天,今天考试又崩了.状态还没有调整过来... 第一题:小L的二叉树 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣.所以,小L当时卡在了二叉树. ...

  9. 简单递推 HDU-2108

    要成为一个ACMer,就是要不断学习,不断刷题...最近写了一些递推,发现递推规律还是挺明显的,最简单的斐波那契函数(爬楼梯问题),这个大家应该都会,看一点稍微进阶了一点的,不是简单的v[i] = v ...

随机推荐

  1. HDU 5867 Sparse Graph (2016年大连网络赛 I bfs+补图)

    题意:给你n个点m条边形成一个无向图,问你求出给定点在此图的补图上到每个点距离的最小值,每条边距离为1 补图:完全图减去原图 完全图:每两个点都相连的图 其实就是一个有技巧的bfs,我们可以看到虽然点 ...

  2. java出错

    某天cmd运行java突然莫名其妙的出错:(之前还好好的) Error occurred during initialization of VMjava/lang/NoClassDefFoundErr ...

  3. 记一次小团队Git实践(上)

    公司规模不大,成立之初,选择了svn作为版本控制系统.这对于用惯了git的我来说,将就了一段时间后,极为不爽,切换到git-svn勉强能用.随后,因为产品需要发布不同的版本,而git-svn对远程分支 ...

  4. 04 DOM一窥

    BOM 浏览器对象模型 * window       alert(); 弹出框 confirm() 询问框 setInterval("run()",1000); 每隔1秒执行run ...

  5. CSS3-margin,padding,border

    margin  padding  border: 1.当属性值为0的时候,不需要在后面添加单位 2.当同时出现top margin以及bottom magin的时候,浏览器应用较大的哪一个 3.不能在 ...

  6. Robotium原理初探

    本文转载于:http://blog.csdn.net/jack_chen3/article/details/41927395 测试框架图: Android测试环境的核心是Instrumentation ...

  7. nginx实现ssl反向代理实战

    登录认证account.free4lab.com需要提供ssl登录接口,ssl的原理看这篇博文,因为前面有反向代理nginx,所以这个需求就放在nginx实现了,否则可以放在web容器(jetty,t ...

  8. LSM树由来、设计思想以及应用到HBase的索引

    讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎  是哈希表的持久化实现,支持增.删.改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储 ...

  9. git冲突解决

    http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html http://hi.baidu.com/jqxw4444/item/f ...

  10. BZOJ4231 : 回忆树

    一个长度为$|S|$的串在树上匹配有两种情况: 1.在LCA处转弯,那么这种情况只有$O(|S|)$次,暴力提取出长度为$2|S|$的链进行KMP即可. 2.不转弯,那么可以拆成两个到根路径的询问. ...