思路:

用二维数组,对于每一个棋子,向右看三个,向下看三个,如果相等则置为负数,最后遍历输出。

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(); } }

最新文章

  1. Asp.net通过模板(.dot/Html)导出Word,同时导出图片
  2. jsonp与JAVA的配合使用
  3. Snapchat面经(师兄的)
  4. myeclipse10安装egit和使用
  5. Visual Studio 2012 比较好用的插件推荐
  6. python 中 input 和 raw_input 的区别
  7. hdu 1495 非常可乐 广搜
  8. OpenStack控制节点上搭建Q版nova服务(step5)
  9. npm -S -D -g i 有什么区别
  10. js弹框的3种方法
  11. Web服务调试可用,发布之后访问出错
  12. Codeforces 891C Envy
  13. 服务网关zuul之四:zuul网关配置
  14. 【理论】python使用celery异步处理请求
  15. 解析 Nginx 负载均衡策略
  16. [CF773D]Perishable Roads
  17. hadoop用put上传文件时报错
  18. 【luogu P5022 旅行】 题解
  19. Marking as slave lost.
  20. RestTemplate中headers中添加Host不生效

热门文章

  1. Oracle 序列(查询序列的值,修改序列的值)
  2. bugku - pwn wp
  3. 一百零二、SAP中ALV事件之十五,让ALV表格自动求和
  4. spring源码 ListableBeanFactory接口
  5. gcc/g++以c++11的方式编译
  6. DW1000芯片定位技术解析
  7. comm
  8. PrepareStatement对象进行批处理的典型步骤顺序
  9. socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
  10. css3 实现渐变边框