社区讨论

71分求助!!!!!!!!!!!!!!!!!!!!

P1205[USACO1.2] 方块转换 Transformations参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo30mffc
此快照首次捕获于
2023/10/23 22:51
2 年前
此快照最后确认于
2023/10/23 22:51
2 年前
查看原帖
JAVA
#include<bits/stdc++.h>
using namespace std;
int n;
char image1[5005][5005],image2[5005][5005];
char out[5005][5005];
char a[5005][5005],b[5005][5005],c[5005][5005];
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>image1[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>image2[i][j];
		}
	}
	for(int i=0,k=0;i<n;i++,k++){
		for(int j=n-1,l=0;j>=0;j--,l++){
			out[j][i]=image2[k][l];
		}
	}
	bool flag=1;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(image1[i][j]!=out[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<1;
		return 0;
	}
	flag=1;
	for(int i=0,j=n-1;i<n;i++,j--){
		for(int k=0,l=n-1;k<n;k++,l--){
			out[j][l]=image2[i][k];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(image1[i][j]!=out[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<2;
		return 0;
	}
	flag=1;
	for(int i=0,j=0;i<=n;i++,j++){
		for(int k=0,l=n-1;k<n;k++,l--){
			out[l][j]=image2[i][k];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(out[i][j]!=image1[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<3;
		return 0;
	}
	flag=1;
	for(int i=0,j=0;i<n;i++,j++){
		for(int k=0,l=n-1;k<n;k++,l--){
			out[i][k]=image2[j][l];
		} 
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(out[i][j]!=image1[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<4;
		return 0;
	}
	flag=1; 
	for(int i=0,j=0;i<n;i++,j++){
		for(int k=0,l=n-1;k<n;k++,l--){
			out[i][k]=image2[j][l];
		} 
	}  
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			a[i][j]=out[i][j];
			b[i][j]=out[i][j];
			c[i][j]=out[i][j];
		}
	}
	for(int i=0,k=0;i<n;i++,k++){
		for(int j=n-1,l=0;j>=0;j--,l++){
			a[j][i]=out[k][l];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(a[i][j]!=image1[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<5;
		return 0;
	}
	flag=1;
	for(int i=0,k=0;i<n;i++,k++){
		for(int j=n-1,l=0;j>=0;j--,l++){
			b[j][i]=out[k][l];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(b[i][j]!=image1[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<5;
		return 0;
	}
	flag=1;
	for(int i=0,k=0;i<n;i++,k++){
		for(int j=n-1,l=0;j>=0;j--,l++){
			c[j][i]=out[k][l];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(c[i][j]!=image1[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<5;
		return 0;
	}
	flag=1;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(image1[i][j]!=image2[i][j]){
				flag=0;
				break;
			}
		}
	}
	if(flag==1){
		cout<<6;
		return 0;
	}
	cout<<7;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...