当时做的时候没读懂题意,理解成最短路径的长度,结果错了好几次,最后少考虑一种情况直接gg了
思路:图形应该上下对称或左右对称如果
大佬代码
#include<bits/stdc++.h>
using namespace std;
const int maxi=1e6+2;
vector<int> v[maxi];
int a[maxi];
string s;
int d[100][100];
int main()
{
int n,k;
cin>>n>>k;
printf("YES\n");
if (k%2==0){
for (int j=2;j<=2+k/2-1;j++)
for (int i=2;i<=3;i++)
d[i][j]=1;
} else
{
k--;
d[2][n/2+1]=1;
for (int i=2;i<=n;i++)
for (int j=2;j<=3;j++)
{
if (k>0)
{
d[j][i]=1;
d[j][n-i+1]=1;
k-=2;
}
}
}
for (int i=1;i<=4;i++)
{
for (int j=1;j<=n;j++)
if (d[i][j]) printf("#"); else printf(".");
printf("\n");
}
return 0;
}