作者:手机用户2502871605 | 来源:互联网 | 2023-09-18 09:30
这道题做的真的是心碎了,虽然最后也没有靠自己的代码AC,还是靠着别人的代码AC的真的是太菜了附上AC代码,(不是我自己写的)#include<cstdio>#inc
这道题做的真的是心碎了,虽然最后也没有靠自己的代码AC,还是靠着别人的代码AC的
真的是太菜了
附上AC代码,(不是我自己写的)
#include
#include
using namespace std;
char map[10][10],s[10][10];
int x1,y1,x2,y2,n,m;
void get_big()
{
bool flag=true;
for(int i=0;ifor(int j=0;jif(s[i][j]=='*')
{
x1=i;
y1=j;
flag=false;
break;
}
}
if(!flag) break;
}
}
void get_small()
{
bool flag=true;
for(int i=0;ifor(int j=0;jif(map[i][j]=='*')
{
x2=i;
y2=j;
flag=false;
break;
}
}
if(!flag) break;
}
}
bool judge()
{
for(int i=0;ifor(int j=0;jif(s[i][j]=='*')
return false;
return true;
}
int sovle()
{
get_small();
while(!judge())
{
get_big();
for(int i=x2;ifor(int j=0;jif(map[i][j]=='*')
{
if(s[x1+i-x2][y1+j-y2]=='*')
s[x1+i-x2][y1+j-y2]='.';
else
return 0;
}
}
}
return 1;
}
int main()
{
int i,j;
while(scanf("%d%d",&n,&m)&&n&&m)
{
for(i=0;iscanf("%s",s[i]);
for(j=0;jscanf("%s",map[j]);
printf("%d\n",sovle());
}
return 0;
}
我自己写的我测了很多测试组,最后还是没有写出来,啊唉唉唉唉唉
太菜了
#include
using namespace std;
#include
#include
struct note
{
int d[101][2];
int num;
} b[11][11];
int point1,point2;
struct notes
{
int d[101][2];
int num;
} c[11][11];
char a[11][11];
char t[11][11];
int n,m;
bool used1[11][11];
bool used3[11][11];
bool used2[11][11];
int dd[4][2]= {{-1,0},{1,0},{0,1},{0,-1}};
inline int max(int aa,int bb)
{
return (aavoid dfs1(int x,int y,int tempx,int tempy)
{
if(a[tempx][tempy]!='*')
return ;
for(int i=0; i<4; i++)
{
int tx=tempx+dd[i][0];
int ty=tempy+dd[i][1];
if(tx>=0&&tx=0&&ty'*'&&!used1[tx][ty])
{
b[x][y].d[b[x][y].num+1][0]=tx-x;
b[x][y].d[b[x][y].num+1][1]=ty-y;
b[x][y].num++;
used1[tx][ty]=true;
dfs1(x,y,tx,ty);
}
}
return ;
}
void dfs2(int x,int y,int tempx,int tempy)
{
if(t[tempx][tempy]!='*')
return ;
for(int i=0; i<4; i++)
{
int tx=tempx+dd[i][0];
int ty=tempy+dd[i][1];
(a[ii][jj]!='*')
continue;
int x=ii;
int y=jj;
bool ans=true;
for(int k=0; k<=c[as][bs].num; k++)
{
bool finds=false;
for(int i=0; i<=b[x][y].num; i++)
{
if(b[x][y].d[i][0]==c[as][bs].d[k][0]&&(b[x][y].d[i][1]==c[as][bs].d[k][1]))
{
finds=true;
break;
}
}
if(!finds)
{
ans=false;
break;
}
}
if(ans)
{
res.d[res.num+1][0]=ii;
res.d[res.num+1][1]=jj;
res.num+=1;
uuu=true;
}
}
}
if(uuu)
return 1;
return 0;
}
int f()
{
for(int i=0; ifor(int j=0; jif(t[i][j]=='*')
{
if(gg(i,j)==0)
{
return 0;
}
else
{
return 1;
}
}
}
}
}
char temps[11][11];
int judge()
{
for(int i=0; ifor(int j=0; jif(temps[i][j]=='*')
return 0;
}