社区讨论

57分求助

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

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lo7zorcx
此快照首次捕获于
2023/10/27 10:23
2 年前
此快照最后确认于
2023/10/27 10:23
2 年前
查看原帖
代码:
CPP
#include<bits/stdc++.h>
#define for_(a,b) for(int i=a;i<b;i++)
using namespace std;

string str,end_,str_;
int num;

int print_(int num){
	cout<<num;
	return 0;
}
string right(string str,int id){
    string s = str;
    for(int i=1;i<=id;i++) for (int j=0;j<num;j++) for (int k=0;k<num;k++) s[k*num+num-1-j]=str[j*num+k];
    return s;
}

string window(string str){
    string s = str;
    for(int i=0;i<num;i++) for(int j=0;j<num;j++) s[i*num+j]=str[i*num+num-j-1];
    return s;
}

int main(){
	cin>>num;
	for_(0,num){
		cin>>str_;
		str+=str_;
	}
	for_(0,num){
		cin>>str_;
		end_+=str_;
	}
	if(right(str,1)==end_) print_(1);
	else if(right(str,2)==end_) print_(2);
	else if(right(str,3)==end_) print_(3);
	else if(window(str)==end_) print_(4);
	else if(right(window(str),1)==end_ || right(window(str),2)==end_ || right(window(str),3)==end_) print_(5);
	else if(str==end_) print_(6);
	else print_(7);
}

回复

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

正在加载回复...