201512-2 消除类游戏 Java
2024-09-05 18:55:04
思路:
用二维数组,对于每一个棋子,向右看三个,向下看三个,如果相等则置为负数,最后遍历输出。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n,m;
n=sc.nextInt();
m=sc.nextInt();
int[][] a=new int[n][m];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j]=sc.nextInt();
//行标记
for(int i=0;i<n;i++)
for(int j=0;j<m-2;j++)
if(Math.abs(a[i][j])==Math.abs(a[i][j+1])&&Math.abs(a[i][j+1])==Math.abs(a[i][j+2])) {
if(a[i][j]>0) a[i][j]*=-1;//相当于一个标记,所以在上面判断的时候才用绝对值
if(a[i][j+1]>0) a[i][j+1]*=-1;
if(a[i][j+2]>0) a[i][j+2]*=-1;
}
//列标记
for(int j=0;j<m;j++)
for(int i=0;i<n-2;i++)
if(Math.abs(a[i][j])==Math.abs(a[i+1][j])&&Math.abs(a[i+1][j])==Math.abs(a[i+2][j])) {
if(a[i][j]>0) a[i][j]*=-1;
if(a[i+1][j]>0) a[i+1][j]*=-1;
if(a[i+2][j]>0) a[i+2][j]*=-1;
}
//输出
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(j!=0)
System.out.print(" ");
if(a[i][j]<0)
System.out.print(0);
else
System.out.print(a[i][j]);
}
System.out.println();
}
sc.close();
}
}
最新文章
- Asp.net通过模板(.dot/Html)导出Word,同时导出图片
- jsonp与JAVA的配合使用
- Snapchat面经(师兄的)
- myeclipse10安装egit和使用
- Visual Studio 2012 比较好用的插件推荐
- python 中 input 和 raw_input 的区别
- hdu 1495 非常可乐 广搜
- OpenStack控制节点上搭建Q版nova服务(step5)
- npm -S -D -g i 有什么区别
- js弹框的3种方法
- Web服务调试可用,发布之后访问出错
- Codeforces 891C Envy
- 服务网关zuul之四:zuul网关配置
- 【理论】python使用celery异步处理请求
- 解析 Nginx 负载均衡策略
- [CF773D]Perishable Roads
- hadoop用put上传文件时报错
- 【luogu P5022 旅行】 题解
- Marking as slave lost.
- RestTemplate中headers中添加Host不生效
热门文章
- Oracle 序列(查询序列的值,修改序列的值)
- bugku - pwn wp
- 一百零二、SAP中ALV事件之十五,让ALV表格自动求和
- spring源码 ListableBeanFactory接口
- gcc/g++以c++11的方式编译
- DW1000芯片定位技术解析
- comm
- PrepareStatement对象进行批处理的典型步骤顺序
- socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
- css3 实现渐变边框