2017年计蒜客初赛第一场 第一题 阿里的新游戏
来源:互联网 发布:笔记本电脑降温软件 编辑:程序博客网 时间:2024/04/29 05:35
题解:
此题用一个二维数组来模拟局面,模拟棋盘的坐标,通过输入小红旗子和小黑旗子来在二维数组中确定旗子的位置, 此棋盘一共只有 16条直线,所以只要确定 放棋盘中旗子的位置别出现混乱就行了
import java.util.Scanner;public class A阿里的新游戏 { int count = 0; int arrays[][] = { {2,0,0,2,0,0,2}, {0,2,0,2,0,2,0}, {0,0,2,2,2,0,0}, {2,2,2,0,2,2,2}, {0,0,2,2,2,0,0}, {0,2,0,2,0,2,0}, {2,0,0,2,0,0,2} }; //棋盘对应位置, 0表示不可放旗子, 2 表示可以放旗子,1表示为小红的旗子, 3 为小黑的旗子 public static void main(String[] args) { A阿里的新游戏 obj = new A阿里的新游戏(); obj.init(); } private void init() { Scanner input = new Scanner(System.in); int n = input.nextInt(); int m = input.nextInt(); for(int i = 0; i < n; i++) { int x = input.nextInt(); int y = input.nextInt(); int x1 = 0; int y1 = 0; if (y >= 0) { y1 = 3 - Math.abs(y); } else { y1 = 3 + Math.abs(y); } if (x >= 0) { x1 = 3 + Math.abs(x); } else { x1 = 3 - Math.abs(x); } if (arrays[y1][x1] != 0) { arrays[y1][x1] = 1; } } for(int i = 0; i < m; i++) { int x = input.nextInt(); int y = input.nextInt(); int x1; int y1; if (y >= 0) { y1 = 3 - Math.abs(y); } else { y1 = 3 + Math.abs(y); } if (x >= 0) { x1 = 3 + Math.abs(x); } else { x1 = 3 - Math.abs(x); } if (arrays[y1][x1] != 0) { arrays[y1][x1] = 3; } } check(); // printf(); //输出棋盘 System.out.println(count); } private void printf() { for (int i = 0; i < arrays.length; i++) { for (int j = 0; j < arrays[0].length; j++) { System.out.print(arrays[i][j]+" "); } System.out.println(); } } private void check() { count += check(arrays[0][0],arrays[0][3],arrays[0][6]); count += check(arrays[1][1],arrays[1][3],arrays[1][5]); count += check(arrays[2][2],arrays[2][3],arrays[2][4]); count += check(arrays[3][0],arrays[3][1],arrays[3][2]); count += check(arrays[3][4],arrays[3][5],arrays[3][6]); count += check(arrays[4][2],arrays[4][3],arrays[4][4]); count += check(arrays[5][1],arrays[5][3],arrays[5][5]); count += check(arrays[6][0],arrays[6][3],arrays[6][6]); //此8条是横轴 的直线 count += check(arrays[0][0],arrays[3][0],arrays[6][0]); count += check(arrays[1][1],arrays[3][1],arrays[5][1]); count += check(arrays[2][2],arrays[3][2],arrays[4][2]); count += check(arrays[0][3],arrays[1][3],arrays[2][3]); count += check(arrays[4][3],arrays[5][3],arrays[6][3]); count += check(arrays[2][4],arrays[3][4],arrays[4][4]); count += check(arrays[1][5],arrays[3][5],arrays[5][5]); count += check(arrays[0][6],arrays[3][6],arrays[6][6]); //此8条是纵轴 直线 } public int check(int a,int b, int c){ if (a == b && b == c && a == 1) { return 1; } return 0; }}
阅读全文
0 0
- 2017年计蒜客初赛第一场 第一题 阿里的新游戏
- 2017 计蒜之道 初赛 第一场 A题(阿里的新游戏)
- 2017 计蒜之道 初赛 第一场 A.阿里的新游戏
- 2017 计蒜之道 初赛 第一场 A. 阿里的新游戏
- 2017 计蒜之道 初赛 第一场 阿里的新游戏(找规律,几何,模拟)
- 计蒜之道初赛第一场-阿里的新游戏
- 2017 计蒜之道 初赛 第一场 B题(阿里天池的新任务)
- 2017计蒜客初赛第二场第一题 百度的年会游戏
- 2017计蒜之道 初赛第一场 阿里天池的新任务(简单)
- 计蒜客 2017 初赛第一场 B. 阿里天池的新任务(简单)
- 2017 计蒜之道 初赛 第一场 阿里天池的新任务(简单)(KMP)
- [数论] 2017 计蒜之道 初赛 第一场 阿里天池的新任务
- 2017 计蒜之道 初赛 第一场 阿里的天池任务(简单)
- 计蒜客-2017初赛第一场
- 百度star2012初赛第一场的题目
- 计蒜之道初赛第一场-阿里天池的新任务(简单)
- 阿里天池的新任务(简单)【字符串匹配哈希算法】 计蒜客初赛第一场
- 计算客第一场,初赛。
- 归并排序
- kotlin学习笔记(五)
- POJ
- [译] 解密 Airbnb 的数据流编程神器:Airflow 中的技巧和陷阱
- 算法作业_23(2017.5.23第十四周)
- 2017年计蒜客初赛第一场 第一题 阿里的新游戏
- Android 进阶4:Service 的一些细节
- iOS枚举值的应用
- HDU1532(最大流Dinic算法模板题)
- 登录界面设计
- 专利权利要求书七步法
- 网易之小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词, 如果小易写出的单词是在系统提供的,将获得
- Python+Requests接口自动化测试框架
- 【C#】之使用泛型集合管理对象