讨论 / 请问一下如何读入数据,我怎么就不会呢?
wforscheckd 2011-01-26 19:07:00
点我顶贴 收藏 删除
帮我看看,我的制表符被略掉了。。。。看起来难看。。。:

#include<string>

#include<iostream>

#include<cstdio>

#include<bitset>

typedef unsigned long ty;

std::string loc[1010]={std::string(1010,'0')};

ty stc[1000010][3]={};

std::bitset<1010> bts[1010]={};

int main()

{

ty n;

std::cin>>n;

for(ty i(1);i<=n;++i)

{

loc[i]=std::string(n+1,'0');

for(ty j(1);j<=n;++j)

std::cin>>loc[i][j];

}

ty sf,ss,tf,ts;

std::cin>>sf>>ss>>tf>>ts;

ty j;

for(;;++j)

for(ty i(1);i;++stc[i][0])

{

if(stc[i][1]==0||stc[i][1]>n||stc[i][2]==0||stc[i][2]>n||bts[stc[i][1]][stc[i][2]]||loc[stc[i][1]][stc[i][2]]=='1')

{

--i;

continue;

}

if(stc[i][1]==tf&&stc[i][2]==ts)

goto ed;

bts[stc[i][1]][stc[i][2]]=true;

if(stc[i][0]==1)

{

stc[i+1][1]=stc[i][1]-1;

stc[i+1][2]=stc[i][2];

}

else if(stc[i][0]==2)

{

stc[i+1][1]=stc[i][1]+1;

stc[i+1][2]=stc[i][2];

}

else if(stc[i][0]==3)

{

stc[i+1][1]=stc[i][1];

stc[i+1][2]=stc[i][2]-1;

}

else if(stc[i][0]==4)

{

stc[i+1][1]=stc[i][1];

stc[i+1][2]=stc[i][2]+1;

}

else

--i;

}

ed:

fprintf(stdout,"%u\n",j);

return 0;

}

查看更多回复
提交回复