

r*c的由剪刀、石头、布组成的矩阵。每天都与上下左右的邻居进行战斗,胜者占领败者的土地。求n天后矩阵的情况。
#include <iostream>
using namespace std;
//PRR
//RSS
//RSR
char a[104][104];
char b[104][104];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int main()
{
int T;
cin>>T;
for(int _=0;_<T;_++)
{
int n,m,ts;
cin>>n>>m>>ts;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i][j];
}
}
for(int o=0;o<ts;o++)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
b[i][j]=a[i][j];
for(int k=0;k<4;k++)
{
int x=dx[k]+i;
int y=dy[k]+j;
if(x>=0 && x<n && y>=0 && y<m )
{
if(a[x][y]=='P' && a[i][j]=='R')
{
b[i][j]='P';
}else if(a[x][y]=='S' && a[i][j]=='P')
{
b[i][j]='S';
}else if(a[x][y]=='R' && a[i][j]=='S')
{
b[i][j]='R';
}
}
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
a[i][j]=b[i][j];
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<b[i][j];
}
cout<<endl;
}
cout<<endl;
}
return 0;
}


本文介绍了一个基于剪刀石头布游戏的矩阵演进算法。该算法模拟了在一个由剪刀、石头、布组成的矩阵中,每个元素与其相邻元素进行胜负较量的过程,并展示了如何通过迭代更新矩阵状态来模拟多轮战斗后的最终分布。
199

被折叠的 条评论
为什么被折叠?



