sbsrg @ 2024-08-07 20:43:50
#include<bits/stdc++.h>
using namespace std;
int n,m,x1[8]={1,1,2,2,-1,-1,-2,-2},y1[8]={2,-2,1,-1,2,-2,1,-1},b[402][402]={0},x,y,sum,o=1;
bool a[402][402];
queue<int> x2,y2,sum1;
int main()
{
cin>>n>>m>>x>>y;
memset(a,true,sizeof(a));
x2.push(x);
y2.push(y);
sum1.push(1);
b[x][y]=1;
a[x][y]=false;
while(o!=0)
{
x=x2.front();
y=y2.front();
sum=sum1.front();
for(int i=0;i<=7;i++)
{
if((x+x1[i])>=1&&(y+y1[i])>=1&&(x+x1[i])<=n&&(y+y1[i])<=m&&a[x+x1[i]][y+y1[i]]==true)
{
b[x+x1[i]][y+y1[i]]=sum+1;
a[x+x1[i]][y+y1[i]]=false;
x2.push(x+x1[i]);
y2.push(y+y1[i]);
sum1.push(sum+1);
o++;
}
}
x2.pop();
y2.pop();
sum1.pop();
o--;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
printf("%d ",b[i][j]-1);
}
printf("\n");
}
return 0;
}
# ```
蟹蟹惹
by dienter @ 2024-08-07 20:47:17
@zhou430502 这边显示编译成功啊?
你发一下编译信息
by dienter @ 2024-08-07 20:48:40
@zhou430502 当我没说
by Untitled_unrevised @ 2024-08-07 20:51:12
y1
是一个标准库里已经弃用但仍然存在的一个函数,而你的实现使用了 y1
作为数组名导致了命名冲突。
下次遇到编译出错的问题学会自己看报错信息,第一行就已经直接说出是什么地方出问题了。
by dienter @ 2024-08-07 20:51:42
楼上正解
by sbsrg @ 2024-08-07 20:56:27
xiexie (>_<)
by sbsrg @ 2024-08-24 20:36:02
@zhou430502
#include<bits/stdc++.h>
using namespace std;
int k,b[11]={0},p,q,ji[300];
char n[31];
vector<int> a[11];
int bian(int s,int sum)
{
b[s]=1;
for(vector<int>::iterator iter = a[s].begin(); iter != a[s].end(); iter++)
{
if(b[*iter]==0)
{
sum+=bian(*iter,1);
}
}
return sum;
}
int main()
{
__int128 sum=1;
cin>>n>>k;
for(int i=1;i<=k;i++)
{
cin>>p>>q;
a[p].push_back(q);
}
for(int i=0;i<strlen(n);i++)
{
sum*=bian(n[i]-'0',1);
for(int i=1;i<=10;i++)
{
b[i]=0;
}
}
int i=0;
for(;sum>0;)
{
int o=sum%10;
ji[i]=o;
sum/=10;
i++;
}
for(int j=i-1;j>=0;j--) cout<<ji[j];
return 0;
}