题 目 描 述 题目描述 题目描述
相信大家都玩过“俄罗斯方块”游戏吧,“俄罗斯方块”是一个有趣的电脑小游戏,现有一个有C列、行不受限定游戏平台,每一次下落的方块是下列的7个图形的一种:


在下落的过程中,游戏者可以作90、 180或270 度旋转,还可以左右移动,对于每一次方块落地,我们要求方块的每一部分都必须与地面(最底面或己落下的方块上表面)接触,例如,有一个宽度为6列的平台,每一列的初始高度(已经占用的方格数)分别为2, 1, 1, 1, 0 和 1。编号为5的方块下落,有且仅有5种不同的落地方法:

现给出每一列的初始高度和下落方块的形状,请你编写一个程序,求出落地的方法总数,也就是落地后,地表面形成的不同的形状总数。

输 入 输入 输入

第一行为二个整数C和P,1 ≤ C ≤ 100, 1 ≤ P ≤ 7,表示列数和下落方块的编号
第二行共有用一个空隔隔开的C个整数,每一个数字在 0 到 100,之间(包含0和100),表示每一列的初始高度

输 出 输出 输出
输出为一个整数,表示落地的方法总数


一眼看过去,便发现这是一道大模拟题 其实是巨佬告诉我的
然后开始进行模拟,分类将每种可能的情况全部 f o r for for 一遍

如:当 m==1

首先
a n s = n ; ans=n; ans=n;
然后就需要判断

a [ i ] = = a [ i + 1 ] a[i]==a[i+1] a[i]==a[i+1]
a [ i ] = = a [ i + 2 ] a[i]==a[i+2] a[i]==a[i+2]
a [ i ] = = a [ i + 3 ] a[i]==a[i+3] a[i]==a[i+3]

然后就是 m ∗ m* m∗ 等于 2 2 2, m m m 等于 3 3 3, m m m 等于 4 4 4… m m m 等于 7 7 7。

最后输出答案 a n s ans ans。

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[100001],ans;
int main()
{scanf("%d %d",&n,&m);for(int i=1; i<=n; i++)scanf("%d",&a[i]);if(m==1)                                            //m==1{ans=n;for(int i=1; i<=n-3; i++)if(a[i]==a[i+1]&&a[i]==a[i+2]&&a[i]==a[i+3])ans++;}if(m==2)                                           //m==2{for(int i=1; i<=n-1; i++)if(a[i]==a[i+1])ans++;}if(m==3)                                           //m==3{for(int i=1; i<=n-2; i++)if(a[i]==a[i+1]&&a[i]+1==a[i+2])ans++;for(int i=1; i<=n-1; i++)if(a[i]==a[i+1]+1)ans++;}if(m==4)                                           //m==4{for(int i=1; i<=n-2; i++)if(a[i]==a[i+2]+1&&a[i+1]==a[i+2])ans++;for(int i=1; i<=n-1; i++)if(a[i]+1==a[i+1])ans++;}if(m==5)                                           //m==5{for(int i=1; i<=n-2; i++)if(a[i]==a[i+1]&&a[i]==a[i+2]||a[i]-1==a[i+1]&&a[i]==a[i+2])ans++;for(int i=1; i<=n-1; i++)if(a[i]==a[i+1]+1||a[i]+1==a[i+1])ans++;}if(m==6)                                           //m==6{for(int i=1; i<=n-2; i++)if(a[i]==a[i+1]&&a[i]==a[i+2]||a[i]+1==a[i+1]&&a[i+1]==a[i+2])ans++;for(int i=1; i<=n-1; i++)if(a[i]==a[i+1]||a[i]==a[i+1]+2)ans++;}if(m==7)                                          //m==7{for(int i=1; i<=n-2; i++)if(a[i]==a[i+1]&&a[i]==a[i+2]||a[i]==a[i+1]&&a[i+1]==a[i+2]+1)ans++;for(int i=1; i<=n-1; i++)if(a[i]==a[i+1]||a[i]==a[i+1]-2)ans++;}printf("%d",ans);return 0;
}

俄罗斯方块【大模拟】相关推荐

  1. 1014 Waiting in Line (30 分) 【未完成】【难度: 难 / 知识点: 大模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805498207911936 大模拟代码有时间补

  2. ZOJ 3879(大模拟)

    传送门 题面:Capture the Flag Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge In comp ...

  3. ccf 202012-3 带配额的文件系统(大模拟)

    题外: 啊这,大半年没来csdn了,都长草了.回来练练机试内容吧,现在敲个模拟题,磕磕绊绊的..但是这大模拟恶心也是真恶心... 思路: 开始的时候跑偏了,本来是用的邻接表直接建边,但是问题是不在同一 ...

  4. “景驰科技杯”2018年华南理工大学程序设计竞赛 C Youhane's Undergraduate Thesis (大模拟)

    链接:https://www.nowcoder.com/acm/contest/94/C 大家都知道想从华南理工大学的本科毕业并不是一件简单的事情,作为一名大四即将毕业的学生,优酱正在为她的毕业论文愁 ...

  5. 20201104大模拟(一)

    20201104大模拟(一) 开错题了我吐了,赛后A一发过,绝了 B是什么deng西,我得有一段时间不想看到植物大战僵尸了,有一些边界问题 C是在计算的过程中的大模拟 D是思维, 总体来说其实还好,不 ...

  6. [BZOJ2548][Ctsc2002]灭鼠行动(大模拟)

    题目描述 传送门 题解 又是一道大模拟... 需要注意的几个地方: 1.一个时刻x+时间单位x~y操作的顺序是:时刻x老鼠繁殖.时刻x放武器.判断是否发生鼠疫.时间单位x~y老鼠移动. 2.只有某一个 ...

  7. 【第一届INT杯】 INT lpy的火柴游戏(大模拟)

    题目链接:https://www.coder.ac.cn/problem/INT1005 题解:这里就不多说了,也没有答案,没有数据.下午想了挺久的,总还是有一点收获的. 总结收获: 1.大模拟轻易别 ...

  8. [BZOJ1033][ZJOI2008]杀蚂蚁antbuster(大模拟)

    题目描述 传送门 题解 bz的题面真心不爽,建议去codevs 比较良心的一道大模拟,题面写的比较清楚,也没有什么坑 几个需要注意的地方 1.对于每一只蚂蚁来说,年龄=秒数-1 2.选择方向的过程是: ...

  9. AC日记——神奇的幻方 洛谷 P2615(大模拟)

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

最新文章

  1. Centos:mysql的安装和使用:yum方式
  2. function $(id) {}表示什么函数
  3. stdout字符串过滤输出
  4. 房贷新政刺激楼市作用有限 房价严重背离无改变
  5. 雷林鹏分享:jQuery EasyUI 拖放 - 基本的拖动和放置
  6. SAP License:后SAP ECC 6.0 时代
  7. python绘制缓和曲线_cad缓和曲线怎么绘制? cad缓和曲线插件的下载使用方法
  8. 【自监督】何凯明新作MAE略读
  9. 使用Python获取键盘的输入
  10. dht11 java_树莓派使用DHT11温湿度传感器
  11. CPU内存乱序访问与内存屏障
  12. 软件构造设计模式III(转载整合)
  13. ffmpeg命令行录制一个具有非IDR性质的I帧的视频
  14. 网站备案必须要云服务器,备案必须要云服务器吗
  15. 微信小程序云开发完整案例
  16. 支付系统--清结算概括介绍
  17. 读取盘序列号(是物理序列号,不是硬盘扇区上的序列号)在win7下的确不能用了
  18. 有道自然语言翻译和文字识别OCR(图片文字识别)接口调用
  19. 网站快照被劫持怎么办?
  20. Python 如何把图像转换成video (avi)格式?

热门文章

  1. Linux系统编程7-串口通信
  2. 串口硬件设备与WINx64下不同环境的程序控制
  3. 根据百度统计接口整理的js埋点方法
  4. 【82】PCIe LN协议
  5. 数学解析Logistic回归算法
  6. Python量化策略:经波动率调整的随机震荡指标
  7. abstract 关键字的使用
  8. 零基础必备Linux云计算+运维自学教程(内含大纲+视频等资料)
  9. Githup授权及文件上传
  10. 5.2去除重复数据 和5.3异常值处理