社区讨论
壮观的模块化……
P1205[USACO1.2] 方块转换 Transformations参与者 6已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi6tko96
- 此快照首次捕获于
- 2025/11/20 10:36 4 个月前
- 此快照最后确认于
- 2025/11/20 10:36 4 个月前
一道普及- 的题目的代码能被我写得这么长,也是醉了~~~
CPP#include<iostream>
using namespace std;
const int maxn=12;
char from[12][12],to[12][12],tmp[12][12],ttmp[12][12];
int n;
bool check()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(tmp[i][j]!=to[i][j]) return false;
return true;
}
bool t1()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[j][n-i+1]=from[i][j];
return check();
}
bool t2()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[n-i+1][n-j+1]=from[i][j];
return check();
}
bool t3()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[j][i]=from[i][j];
return check();
}
bool t4()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[i][n-j+1]=from[i][j];
return check();
}
bool t5()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
ttmp[i][n-j+1]=from[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[j][n-i+1]=ttmp[i][j];
return check();
}
bool t6()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
ttmp[i][n-j+1]=from[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[n-i+1][n-j+1]=ttmp[i][j];
return check();
}
bool t7()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
ttmp[i][n-j+1]=from[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
tmp[i][n-j+1]=ttmp[i][j];
return check();
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>from[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>to[i][j];
for(int i=1;i<=6;i++)
{
if(i==1)
if(t1()){cout<<i;return 0;}
if(i==2)
if(t2()){cout<<i;return 0;}
if(i==3)
if(t3()){cout<<i;return 0;}
if(i==4)
if(t4()){cout<<i;return 0;}
if(i==5)
if(t5()||t6()||t7()){cout<<i;return 0;}
if(i==6)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(from[i][j]!=to[i][j]){cout<<7;return 0;}
}
cout<<6;
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...