刚写完一大堆然后提交时博客给我无法提交,等恢复了全没了,我写nm。
还是写点吧。今天不是正式的集训,T1大暴力T2大模拟(cmxT1打了1.5小时线段树我睡了1.5小时)随便贴个代码吧(再敢给我寄我就不写了)
#include<bits/stdc++.h>
using namespace std;
string a[205];
bool b[205][205];
int h,w;
int sol(int x,int y)
{
int xr,yd;
xr=x;
yd=y;
while(a[y][xr]=='+')
{
b[y][xr]=1;
xr++;
}
while(a[yd][x]=='+')
{
// cout<<yd<<" "<<a[yd][x]<<endl;
b[yd][x]=1;
yd++;
}
xr--;
yd--;
for(int ii=x;ii<=xr;ii++)
{
b[yd][ii]=1;
}
for(int ii=y;ii<=yd;ii++)
{
b[ii][xr]=1;
}
// cout<<x<<" "<<y<<" "<<xr<<" "<<yd<<endl;
for(int ii=x+1;ii<xr;ii++)
{
for(int jj=y+1;jj<yd;jj++)
{
if(b[jj][ii]==0)
{
if(a[jj][ii]=='+')
{
// cout<<" - "<<ii<<" / "<<jj<<endl;
sol(ii,jj);
}
else
if(!(a[jj][ii]>='0'&&a[jj][ii]<='9')&&(!(a[jj][ii]>='a'&&a[jj][ii]<='Z'))&&a[jj][ii]!='?'&&a[jj][ii]!='!'&&a[jj][ii]!=','&&a[jj][ii]!='.'&&a[jj][ii]!=' ')
{
// cout<<" "<<y<<" "<<x<<" ---- "<<yd<<" "<<xr<<endl;
for(int iii=x;iii<=xr;iii++)
{
for(int jjj=y;jjj<=yd;jjj++)
{
a[jjj][iii]=' ';
}
}
return 0;
}
}
b[jj][ii]=1;
}
}
return 0;
}
int main()
{
cin>>h>>w;
getline(cin,a[0]);
for(int i=0;i<h;i++)
{
getline(cin,a[i]);
}
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
if(b[i][j]==0&&a[i][j]=='+')
{
// cout<<" "<<i<<" // "<<j<<endl;
sol(j,i);
}
}
}
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
cout<<a[i][j];
}
if(i!=h-1)
{
cout<<endl;
}
}
}