社区讨论
求助,为什么只有最后一个点wa了
P1259黑白棋子的移动参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi6lnaw8
- 此快照首次捕获于
- 2025/11/20 06:54 4 个月前
- 此快照最后确认于
- 2025/11/20 06:54 4 个月前
CPP
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int n;
char f[110],p1,p2;
void print()
{
for(int i=1;i<=2*n+2;i++)
cout<<f[i];
cout<<endl;
}
void movet(int y)
{
if(y==4)
{
p1=f[4];p2=f[5];
f[4]=f[9];f[5]=f[10];
f[9]=p1;f[10]=p2;
print();
p1=f[4];p2=f[5];
f[4]=f[8];f[5]=f[9];
f[8]=p1;f[9]=p2;
print();
y--;
}
if(y==3)
{
p1=f[2];p2=f[3];
f[2]=f[8];f[3]=f[9];
f[8]=p1;f[9]=p2;
print();
p1=f[2];p2=f[3];
f[2]=f[7];f[3]=f[8];
f[7]=p1;f[8]=p2;
print();
y--;
}
if(y==2)
{
p1=f[1];p2=f[2];
f[1]=f[7];f[2]=f[8];
f[7]=p1;f[8]=p2;
print();
}
exit(0) ;
}
void move(int x)
{
if( x <= 4 )
movet(x);
p1=f[2*x+1];p2=f[2*x+2];
f[2*x+1]=f[x];f[2*x+2]=f[x+1];
f[x]=p1;f[x+1]=p2;
print();
p1=f[2*x-1];p2=f[2*x];
f[2*x-1]=f[x];f[2*x]=f[x+1];
f[x]=p1;f[x+1]=p2;
print();
move(x-1);
}
int main()
{
cin>>n;
for(int i=1;i<=2*n;i++)
f[i]='o';
for(int i=n+1;i<=2*n;i++)
f[i]='*';
f[2*n+1]='-';f[2*n+2]='-';
print();
if(n<=4) movet(n);
if(n>4) move(n);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...