NYOJ题目893十字架

------------------------------------

这道题有坑,题目描述含糊不清,出题人水平不太行啊....

组成十字架的必须是1,并且是5个,不算大的十字架之类的。

AC代码如下:

 1 import java.util.Scanner;
 2
 3 public class Main {
 4
 5     public static void main(String[] args) {
 6
 7         Scanner sc=new Scanner(System.in);
 8
 9         int times=sc.nextInt();
10         while(times-->0){
11             matrix=new int[w][w];
12             for(int i=0;i<w;i++){
13                 for(int j=0;j<w;j++){
14                     matrix[i][j]=sc.nextInt();
15                 }
16             }
17
18             System.out.println(dfs());
19         }
20
21     }
22
23     private static int matrix[][],w=7;
24
25     private static int dfs(){
26         int ans=0;
27         for(int i=1;i<w;i++){
28             for(int j=1;j<w;j++){
29                 if(isCross(i,j)) ans++;
30             }
31         }
32         return ans;
33     }
34
35     private static boolean isCross(int x,int y){
36         if(x<1 || x>=w-1 || y<1 || y>=w-1) return false;
37         if(matrix[x][y]!=1) return false;
38         return 1==matrix[x-1][y] && 1==matrix[x+1][y] && 1==matrix[x][y-1] && 1==matrix[x][y+1];
39     }
40
41 }

题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=893

时间: 2024-08-15 21:31:17

NYOJ题目893十字架的相关文章

NYOJ 893 十字架

#include<stdio.h>int main(){ int num; scanf("%d",&num); while(num--) { int a[7][7],i,j,count=0; for(i=0;i<7;i++) { for(j=0;j<7;j++) scanf("%d",&a[i][j]); } for(i=1;i<=5;i++) { for(j=1;j<=5;j++) if(a[i][j]==1 &

NYOJ题目57 6174问题

----------------------------------------------------- 感觉这个OJ题目难度划分很不合理,这道理明明很简单却给了2的难度,而之前难度为0的水题有好多难死个人没做出来让我暗暗觉得自己脑子里都是屎... 把题目描述翻译成人话的意思就是多少次以后这个序列会出现,想明白这一点就比较简单了. AC代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main

NYOJ题目1049自增自减

--------------------------------- 简单的字符判断. AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int times=Integer.parseInt(sc.nextLine()); 10 while(times-->0

NYOJ题目10505C?5S?

--------------------------------------- 水. AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int times=sc.nextInt(); 10 while(times-->0){ 11 double a=sc.n

NYOJ 题目56 阶乘式因式分解(一)

题目描述: 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15我的代码://AC #include<stdio.h>int main(){ int s,k; scanf("%d",&s); while(s--)

NYOJ题目28大数阶乘

-------------------------------------祭出BigInteger AC代码: import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); BigInteger ans=fac(n);

NYOJ题目124中位数

------------------------------------- 排序取中间数即可 AC代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 8 Scanner sc=new Scanner(System.in); 9 10 int times=sc.nextInt(); 11 wh

NYOJ题目168房间安排

------------------------------------------------ 其实就是计算一下时间线上重叠部分的最大值是多少 一个很容易想到的办法就是模拟,如下 AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int times=sc.

NYOJ题目125盗梦空间

----------------------------------------- 开始的时候打算每进入或退出一层就换算成那层的时间,然而WA了. 怒,干脆就来点暴力的,管你什么跟什么只要停留了就根据层次统一换算成现实时间,使用BigDecimal保证精度,AC. AC代码: 1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(