StopAllSounds

10月3日,在杭州市西湖景区,一只小松鼠不停地接受一道道食物,花生、
玉米、饼干,可谓来者不拒,憨态可掬的模样吸引了众多围观者...
Description  
 小松鼠开心地在树之间跳跃着,突然她停了下来。因为眼前出现了一个
拿着专克超萌小松鼠的法宝————超萌游戏机的游客!
 超萌游戏机之所以拥有这个名字,是因为它的屏幕是一个n × 2的矩形。
小松鼠接过游戏机,开始了她的第一个游戏:俄罗斯方块。
 考虑到小松鼠的智商,游戏机里的方块只有下面四种,方块按顺序下落,

(Linux太垃圾了,不带画图)
可以在任意时刻(甚至是下落前)对其进行不限次数的旋转操作。
 由于四种方块最小宽度都为2,因此下落的时候在水平方向上是不能够移
动的。我们称当前方块下落的过程完成了,当且仅当其再往下移动一个单
位就会与之前覆盖的方块有部分相重叠。小松鼠想要知道,在这个n × 2的
游戏界面中,一共会出现多少种游戏状态。游戏状态指单次方块下落的过
程完成后,不要求游戏结束(即不要求第1行非空),且界面中出现的必须
是完整的方块。


 两种游戏状态被认为是相同的,当且仅当游戏界面中的每一个格子两种
状态下被覆盖的方块类型都相同(或都不被覆盖) 。
 如下图属于两种不同的游戏状态
 再次考虑到小松鼠的智商,答案模10 9 + 7 输出。
Input  
 一行一个数n,表示游戏界面的长度。
Output  
 一个数,表示游戏界面的状态数在模10 9 + 7意义下的值。
Constraints  
 对于前10%,n <= 10。
 对于前30%,n <= 1000。
 对于前60%,n <= 100000。
 对于100%,n <= 1000000。
 人生不能失去信仰,数据有梯度。

f[i][0]表示第i行2列都满了

f[i][1]表示第i行第1列为空

f[i][2]表示第i行第2列为空

f[i][3]表示第i,i-1行第一列都为空

f[i][4]表示第i,i-1行第二列都为空

f[i][5]表示第i行为空

记住:方块只能旋转,未填满也算方案

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 long long f[1000001][6];
 7 int n;
 8 int Mod=1000000007;
 9 int main()
10 {int i,j;
11   cin>>n;
12   f[0][0]=1;
13   for (i=1;i<=n;i++)
14     {
15       if (i>=2)
16     f[i][0]+=f[i-2][0]+f[i-2][1]+f[i-2][2]+f[i-2][3]+f[i-2][4];
17       f[i][0]%=Mod;
18       if (i>=3)
19     f[i][1]+=f[i-2][2]+f[i-2][4]+f[i-3][0]+f[i-3][1]+f[i-3][3],
20       f[i][2]+=f[i-2][1]+f[i-2][3]+f[i-3][0]+f[i-3][2]+f[i-3][4];
21       f[i][1]%=Mod;
22       f[i][2]%=Mod;
23       if (i>=3)
24     f[i][1]+=f[i-2][1]+f[i-2][3]+f[i-3][0]+f[i-3][2]+f[i-3][4];
25        // f[i][2]+=f[i-2][2]+f[i-2][4]+f[i-3][0]+f[i-3][1]+f[i-3][3];
26       f[i][1]%=Mod;f[i][2]%=Mod;
27       if (i>=3)
28     f[i][3]+=f[i-3][0]+f[i-3][1]+f[i-3][2]+f[i-3][3]+f[i-3][4],
29       //f[i][4]+=f[i-3][0]+f[i-3][1]+f[i-3][2]+f[i-3][3]+f[i-3][4],
30       f[i][0]+=f[i-1][3]+f[i-2][1]+f[i-3][0]+f[i-3][2]+f[i-3][4];
31       f[i][5]=f[i-1][0]+f[i-1][5]+f[i-1][1]+f[i-1][2]+f[i-1][3]+f[i-1][4];
32       f[i][3]%=Mod;f[i][4]%=Mod;f[i][0]%=Mod;f[i][5]%=Mod;
33     }
34   //cout<<f[4][5]<<endl;
35   //printf("%d %d %d %d %d\n",f[n][5],f[n][4],f[n][3],f[n][2],f[n][1],f[n][0]);
36   cout<<((f[n][5]+f[n][1])%Mod+(f[n][2]+f[n][3])%Mod+(f[n][4]+f[n][0])%Mod)%Mod;
37 }
时间: 2024-09-30 05:06:33

StopAllSounds的相关文章

Flash部分常识

动态的表现手法:移动模糊的图来表示告诉移动的人或物.游戏的速率:FPS一般设置为24.游戏的加速度:补间动画的缓动表示加速度.关于反弹:弹性配合加速度,就可以提现物体的重力和运动的真实情况了.惯性:突然发生动作或突然静止的时候.         小汽车要告诉向前运动时:闲稍微向后运动一点,表现原来静止带来的惯性.         告诉运动的小汽车突然停止:可以给他以形变,然后恢复,体现告诉运动的惯性.视觉冲击力:      1:速度的变化与周围的环境.      2:运动的面积:告诉闪动也不错,

《游戏编程模式》(6)

Chapter 14 组件模式 允许一个单一的实体跨越多个不同域而不会导致耦合. 为实现两个类之间的代码共享,应该让他们拥有同一个类的实例,而不是继承同一个类. 使用情境: 有一个涉及多个域的类.但希望这些域保持解耦: 这个类很庞大: 希望定义许多共享不同能力的对象. 分割不同的域: 1 class InputComponent 2 { 3 4 public: 5 void update(Bjorn& bjorn) 6 { 7 switch (Controller::getJoystickDir

FLASH动作脚本详解

FLASH动作脚本详解 一.FLASH脚本基础入门讲解 二.按钮AS的编写 三.影片剪辑的AS编写 四.动态文本框 五.影片剪辑的拖拽 六.流程控制与循环语句 七.绘图及颜色的AS的编写 八.声音 AS 的编写与控制 九.时间日期的 AS编写 十.点语法以及路径 十一.深入了解时间控制 十二.无条件转移 十三.变量 十四.运算符(一) 十五.变量(二) 十六.影片剪辑的属性 十七.再讲循环语句 十八.影片剪辑处理函数 十九.复制影片剪辑 二十.深入 startDrag()与 stopDrag()

DBus学习笔记

摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的一些参考资料[2] DBus学习笔记二:什么是DBus?[3] DBus学习笔记三:DBus的一些基本概念 一些基本概念的解释和翻译:http://blog.mcuol.com/User/AT91RM9200/Article/12816_1.htmhttp://www.cnblogs.com/wzh

flash代码

Flash常用的动作命令一.Flash中的常用命令:1.在当前帧停止播放 on(release){ stop();} 2.从当前帧开始播放 on(release){ play();} 3.跳到第 10 帧,并且从第 10 帧开始播放 on(release){ gotoAndPlay(10);} 4.跳到第 20 帧,并且停止在该帧 on(release){ gotoAndStop(20);} 5.跳到下一个场景,并且继续播放 on(release){ nextScene(); play();}

quick-cocos2d-x实例之挑战记忆极限设计文档

1.  来源 QuickV3 sample项目中的2048样例游戏,以及最近<最强大脑>娱乐节目.将2048改造成一款挑战玩家对数字记忆的小游戏. 邮箱:[email protected] 微信公众号:HopToad APK下载地址:http://download.csdn.net/detail/notbaron/8446223 源码下载地址:http://download.csdn.net/detail/notbaron/8446213 2.  逻辑 可选择简单,中等,困难三种难度游戏. 开

bbframework入门之路【八】粒子系统和音效

[正文] 一款游戏除了动作和动画之外,在视觉上最容易提升画面效果的当属粒子系统了.关于粒子系统的详细介绍我们在这里就不在阐述,因为那不是重点,有兴趣的可以自己百度了解粒子系统. bbframework框架提供了“P.newParticle()”函数来播放粒子文件.cocos2D引擎支持的是“.plist”格式的粒子文件,plist文件可以通过专门的粒子编辑器来导出.newParticle()函数有三个参数,第一个是粒子plist文件的位置,我们同样是放在X4或者X2里面.第二个和第三个参数分别是