CCF2016.4 - B题
思路:创建两个bool数组来模拟下落过程,一个存放面板状态,一个存放下落的格子。检测格子和面板对应位置是否同时为True,如果是则有冲突,不能继续下落,否则增加行号。为了统一处理,我们把面板最下面加一行True。
import java.util.*;
public class Main {
static boolean[][] board = new boolean[20][20];
static boolean[][] block = new boolean[4][4];
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
for (int i = 0; i < 15; i++)
for (int j = 0; j < 10; j++)
board[i][j] = cin.nextInt() == 1;
for (int i = 0; i < 10; i++)
board[15][i] = true;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
block[i][j] = cin.nextInt() == 1;
int c = cin.nextInt(), r = 0;
c--;
while (check(r + 1, c))
r++;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
if (block[i][j])
board[r + i][c + j] = true;
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 9; j++)
System.out.print((board[i][j] ? 1 : 0) + " ");
System.out.println(board[i][9] ? 1 : 0);
}
}
static boolean check(int r, int c) {
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
if (board[r + i][c + j] && block[i][j])
return false;
return true;
}
}
CCF2016.4 - B题的更多相关文章
- CCF2016.4 - C题
思路:先把路径按反斜杠split成数组,然后用一个ArrayList去模拟.如果遇到空或者.则不处理:如果遇到..则删除ArrayList最后一个元素(注意如果只有1个元素则不删除):其他情况直接加到 ...
- CCF2016.4 - A题
思路:枚举每个点,看看它是否同时小于/大于前一个点和后一个点 import java.util.Scanner; public class Main { public static void main ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170103
20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- SQL面试笔试经典题(Part 1)
本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...
- 刷LeetCode的正确姿势——第1、125题
最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...
随机推荐
- POJ 1704 Georgia and Bob【博弈】
题目链接: http://poj.org/problem?id=1704 题意: 给定棋子及其在格子上的坐标,两个人轮流选择一个棋子向左移动,每次至少移动一格,但是不可以碰到其他棋子.无路可走的时候视 ...
- markdown八条基础语法
1.空行 答:使用全角打出空格,之后再换行就可以打出空行了 2.标题 答:#表示标题,#表示一级标题,字号最大,一共有六级标题 3.列表 答:- 无序列表,1. 有序列表,注意和文本之间有空格 4.链 ...
- mongodb按照日期分组统计
目录 1.使用时间格式化方法 2.进行时间补偿(默认当前时区是东八区,即8x3600x1000=28800000) mongodb的默认时间是格林尼治时间,如果是要按照日期进行分组需要注意!!!. 解 ...
- Java多线程分析案例
1. 多线程的创建方式 (1).继承 Thread类:但Thread本质上也是实现了Runnable 接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过 Thread 类的 sta ...
- Java日志框架-logback配置文件参考(转)
logback.xml <!-- if debug set to true, context info always print otherwise the contex info will p ...
- linux 解压zip文件
linux 解压zip文件 学习了:https://blog.csdn.net/hbcui1984/article/details/1583796 unzip xx.zip
- zookeeperclient设置监听
1.目的 zookeeper是一个分布式服务管理框架.zookeeper提供了对client的通知.即在server端的节点有改动或者删除的时候,能够给client进行通知. 2.server端部署 ...
- 3 微信开发本地代理环境的搭建--实现将内网ip映射到外网
微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本 ...
- JAVA 并发编程-返回运行结果(Callable和Future)(九)
启动一个线程不论使用Thread或者Runnable的时候.都是没有返回结果的. 也就是说Thread和Runnable的run()方法必须没有返回值. public void run(){} 解决方 ...
- Educational Codeforces Round 18 C. Divide by Three DP
C. Divide by Three A positive integer number n is written on a blackboard. It consists of not more ...