4.24周练题解

1.诸葛亮的排列组合
看成正方形的四个角,旋转三次,直接暴力枚举四种状态,一一对应

import java.util.Scanner;
public class A1 {
    
    
	public static void main(String[] args) {
    
    
		
		int a[][]=new int [5][5];
		int b[][]=new int [5][5];
		Scanner sc=new Scanner(System.in);
		int t,k=1;
		t=sc.nextInt();

			while(k<=t){
    
    
				for (int k2 = 1; k2 <= 2; k2++) {
    
    
					for (int l = 1; l <=2; l++) {
    
    
						a[k2][l]=sc.nextInt();
					}
				}
				for (int k2 = 1; k2 <= 2; k2++) {
    
    
					for (int l = 1; l <=2; l++) {
    
    
						b[k2][l]=sc.nextInt();
					}
				}
				int flag=0;
				if(a[1][1]==b[1][1]&&a[1][2]==b[1][2]&&a[2][1]==b[2][1]&&a[2][2]==b[2][2])flag=1;
				else if(a[1][1]==b[1][2]&&a[1][2]==b[2][2]&&a[2][1]==b[1][1]&&a[2][2]==b[2][1])flag=1;
				else if(a[1][1]==b[2][2]&&a[1][2]==b[2][1]&&a[2][1]==b[1][2]&&a[2][2]==b[1][1])flag=1;
				else if(a[1][1]==b[2][1]&&a[1][2]==b[1][1]&&a[2][1]==b[2][2]&&a[2][2]==b[1][2])flag=1;
				
				if(flag==1){
    
    
					System.out.println("Case #"+k+": "+"POSSIBLE");

				}
				else{
    
    
					System.out.println("Case #"+k+": "+"IMPOSSIBLE");

				}
				k++;
			}
		
		}

}

2.华佗的药瓶,水题

import java.util.Scanner;

public class B {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		int k=0;
		while(++k<=t) {
    
    
			int n=sc.nextInt();
			int m=2*n-1;
			System.out.println("Case #"+k+": "+m);
		}
	}
}

3.水题
两个数组的对照,下标找对就行了


import java.util.Scanner;

public class C {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc=new Scanner(System.in);
				int t=sc.nextInt();
		int k=0;
		while(++k<=t) {
    
    
			int n=sc.nextInt();
			int m=sc.nextInt();
			int p=sc.nextInt();
			int a[]=new int [n];
			int b[]=new int [m];
			for (int i = 0; i < a.length; i++) 
				a[i]=sc.nextInt();
			for (int i = 0; i < b.length; i++) 
				b[i]=sc.nextInt();
			int q=n-(m-1)*p;
			int s1=0;
			for (int i = 0; i < q; i++) {
    
    
				int num=0;
				for (int j = 0; j < b.length ; j++) {
    
    
					//是否对应
					if(b[j]==a[i+j*p] && i+j*p<a.length)
						num++;
				}
				//如果全部对应
				if(num==b.length) {
    
    s1++;}
				
			}
			System.out.println("Case #"+k+": "+s1);
		}
	}
}




猜你喜欢

转载自blog.csdn.net/ba7bc/article/details/106317818