试题编号: 201604-2
试题名称: 俄罗斯方块
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。
  游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方格图上的方块上边缘重合或者达到下边界时,板块不再移动,如果此时方格图的某一行全放满了方块,则该行被消除并得分。
  在这个问题中,你需要写一个程序来模拟板块下落,你不需要处理玩家的操作,也不需要处理消行和得分。
  具体的,给定一个初始的方格图,以及一个板块的形状和它下落的初始位置,你要给出最终的方格图。
输入格式
输入的前15行包含初始的方格图,每行包含10个数字,相邻的数字用空格分隔。如果一个数字是0,表示对应的方格中没有方块,如果数字是1,则表示初始的时候有方块。输入保证前4行中的数字都是0。
  输入的第16至第19行包含新加入的板块的形状,每行包含4个数字,组成了板块图案,同样0表示没方块,1表示有方块。输入保证板块的图案中正好包含4个方块,且4个方块是连在一起的(准确的说,4个方块是四连通的,即给定的板块是俄罗斯方块的标准板块)。
  第20行包含一个1到7之间的整数,表示板块图案最左边开始的时候是在方格图的哪一列中。注意,这里的板块图案指的是16至19行所输入的板块图案,如果板块图案的最左边一列全是0,则它的左边和实际所表示的板块的左边是不一致的(见样例)
输出格式
输出15行,每行10个数字,相邻的数字之间用一个空格分隔,表示板块下落后的方格图。注意,你不需要处理最终的消行。
样例输入
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
1 1 1 0 0 0 1 1 1 1
0 0 0 0 1 0 0 0 0 0
0 0 0 0
0 1 1 1
0 0 0 1
0 0 0 0
3
样例输出
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 0 0 0 0

模拟题,

模拟下落过程

#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
int map[15][10];
int p[4][4];
int l;
int t[4] = {-1,-1,-1,-1};
int x[4],y[4];
int main()
{for (int i = 0; i < 15; i++)for (int j = 0; j < 10; j++){cin >> map[i][j];}for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++){cin >> p[i][j];}cin >> l;int c=0;for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++){if (p[i][j])x[c] = i, y[c] = j,c++;if (p[j][i])t[i] = j;}int flag = 0;int cnt = 0;while (1){for (int i = 0; i < 4; i++){if (flag)break;if (t[i] + 1 >= 15){flag = 1; break;}if (t[i] == -1)continue;if (map[t[i] + 1][l - 1 + i])flag = 1;}if (flag)break;for (int i = 0; i < 4; i++){if (t[i] == -1)continue;t[i]++;}  cnt++;}for (int i = 0; i < 4; i++){map[x[i] + cnt][l - 1 + y[i]] = 1;}for (int i = 0; i < 15; i++){for (int j = 0; j < 10; j++){cout << map[i][j] << " ";}cout << endl;}return 0;
}
/*
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
1 1 1 0 0 0 1 1 1 1
0 0 0 0 1 0 0 0 0 0
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
7*/

CCF软件能力认证201604俄罗斯方块相关推荐

  1. 2022 CCF 非专业级别软件能力认证第一轮 (CSP-J1)入门级 C++语言试题 认证时间:2022 年 9 月 18 日 09:30~11:30

    今天的考试题,有点乱 2022 CCF 非专业级别软件能力认证第一轮 (CSP-J1)入门级 C++语言试题 认证时间:2022 年 9 月 18 日 09:30~11:30 考生注意事项:  试题 ...

  2. 2020 CCF非专业级别软件能力认证第一轮(LGR-10)洛谷模拟试题试卷

    2020 CCF非专业级别软件能力认证第一轮 (LGR-10)洛谷模拟试题试卷 认证时间:2020年10月8日09:30-11:30 一.单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正 ...

  3. 2020 CCF 非专业级别软件能力认证第一轮(CSP-S) 提高级 C++ 语言试题

    目录 一.选择题:每题 2 分,共 15 题, 30 分. 在每小题给出的四个选项中,只有一项是符合题目要求的. 二.阅读程序(程序输入不超过数组或字符串定义的范围:判断题正确填 3,错误填 7:除特 ...

  4. ccf z字形 java_第三次CCF计算机软件能力认证题目:Z字形扫描

    这是第三次CCF计算机软件能力认证考试(2014年12月14日)的一道题目.小编今天有幸免费参加了这次考试.据说这题是谷歌的笔试题变形??求证实.. 好了,题外话不啰嗦,看题目 题目 在图像编码的算法 ...

  5. [ 2019-12-15第十八次CCF计算机软件能力认证]总结 Apare_xzc

    [ 2019-12-15第十八次CCF计算机软件能力认证]总结 导言:今天第一次参加CCF考试,考完回来迫不及待地想要做一点笔记 链接:我做的CCF题目汇总Apare_xzc <– 比赛题目(凭 ...

  6. CCF计算机软件能力认证201809-2买菜(C语言版)

    ccf-csp计算机软件能力认证201809-2买菜(C语言版) 题目内容: 问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车, ...

  7. CCF计算机软件能力认证202009-1称检测点查询(C语言版)

    ccf-csp计算机软件能力认证202009-1称检测点查询(C语言版) 题目内容: 题目背景 2020 年 6 月 8 日,国务院联防联控机制发布<关于加快推进新冠病毒核酸检测的实施意见> ...

  8. 2020年CSP-J认证 CCF非专业级别软件能力认证第一轮真题--阅读程序题

    2020 CCF认证第一轮(CSP-J)真题 二.阅读程序题 (程序输入不超过数组或字符串定义的范围,判断题正确填√错误填X;除特殊说明外,判断题 1.5分,选择题3分,共计4 分) 第一题 01 # ...

  9. 2021 CCF 非专业级别软件能力认证第一轮(CSP-S1)提高级

    C++语言试题,认证时间:2021 年 9 月 19 日 09:30~11:30 考生注意事项: l 试题纸共有 16 页,答题纸共有 1 页,满分 100 分.请在答题纸上作答,写在试题纸上的 一律 ...

最新文章

  1. 服务器文件数量监控,服务器监控指标有哪些?好文章一定要收藏
  2. 初学者python用哪个版本好-python用哪个版本好
  3. 11月12日云栖精选夜读 | 2135亿!新技术的力量刚刚开始
  4. 斯特芬森迭代法(Python)
  5. ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.
  6. SpringBoot下的模板技术Thymeleaf详解
  7. pixhawk的姿态控制算法解读
  8. sonar 报错日志分析(根据日志跟踪源码执行)
  9. Android官方开发文档Training系列课程中文版:后台服务之响应IntentService的处理结果
  10. jvm详解 - 新生代与老年代
  11. 苍井空老师推特唤醒中国网民正版意识
  12. 《欲罢不能:刷屏时代如何摆脱行为上瘾》书摘
  13. day11 红队工具篇FofaQuakeKunyuSuize水泽Arl灯塔
  14. MATLAB当中一些简单的数值分析函数总结
  15. 北京东莞企业邮箱注册,外贸邮箱用哪个比较好?
  16. 抖音快手民俗的作品制作方法
  17. 帝国CMS[!--onclick--]标签动态显示页面点击数,解决刷新页面浏览量无变化的问题
  18. linux运行jar文件Invalid or corrupt jarfile错误
  19. 软件开发专业需要学习多少年
  20. 强生成首家上海市政府认定外资开放式创新平台;因美纳与红杉中国在华共推基因组学孵化器 | 美通企业日报...

热门文章

  1. DefaultView 的作用
  2. 递推例题--upc皇家棋神
  3. 【OD统一考试(B卷)】最佳植树距离、种树,Python 解答
  4. ubuntu安装dotnet
  5. 使用selenium爬取QS世界大学综合排名与学科排名数据
  6. setInterval函数的用法
  7. Spring boot集成log4j2
  8. 程序员是不是真的经常在生活中被绿呢?
  9. 数据结构期末考试题库
  10. Hack The Box - Crocodile关卡