| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
大家提供的测试点都过了 为什么还是wa?#include<cstdio>
#include<queue>
#include<iostream>
#include<cstring>
#define maxn 21
using namespace std;
const int dx[]={0,-1,1,0,0};
const int dy[]={0,0,0,-1,1};
int n,m,l;
int k;
bool vis[21][21][16400];
struct point{
int x[10],y[10];
//int grap[maxn][maxn];(MLE)
int h;
};
int grap[maxn][maxn];
int graping[maxn][maxn];
queue <point> p;
void cleanqueue(){
while(!p.empty()){
p.pop();
}
return;
}
bool find(point w4){
int xt=w4.x[1];
int yt=w4.y[1];
int val=0;
for(int i=2;i<=l;i++){
int ax,ay;
ax=w4.x[i]-w4.x[i-1];
ay=w4.y[i]-w4.y[i-1];
if(ax==1){
val=val*4;
}
if(ay==1){
val=val*4+1;
}
if(ax==-1){
val=val*4+2;
}
if(ay==-1){
val=val*4+3;
}
}
if(vis[xt][yt][val]){
return false;
}
else{
vis[xt][yt][val]=true;
return true;
}
}
int main(){
int t=0;
while(1){
t++;
memset(vis,false,sizeof(vis));
cin>>n>>m>>l;
if(n==0&&m==0&&l==0) break;
point w1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
grap[i][j]=graping[i][j]=0;
}
for(int i=1;i<=l;i++){
cin>>w1.x[i]>>w1.y[i];
//graping[w1.x[i]][w1.y[i]]=1;
}
cin>>k;
for(int i=1;i<=k;i++){
int x0,y0;
cin>>x0>>y0;
grap[x0][y0]=graping[x0][y0]=-1;
}
w1.h=0;
p.push(w1);
int ok=0;
while(!p.empty()){
if(ok) break;
point w2;
w2=p.front();
p.pop();
int x1,y1;
for(int i=1;i<=4;i++){
x1=w2.x[1]+dx[i];
y1=w2.y[1]+dy[i];
if(x1>=1&&x1<=n&&y1>=1&&y1<=m){
for(int i=1;i<=l;i++){
graping[w2.x[i]][w2.y[i]]=1;
}
if(graping[x1][y1]==0){
point w3;
//memcpy(w3.grap,w2.grap,sizeof(w2.grap));
w3.x[1]=x1;
w3.y[1]=y1;
w3.h=w2.h+1;
//grap[x1][y1]=1;
for(int i=l;i>=2;i--){
w3.x[i]=w2.x[i-1];
w3.y[i]=w2.y[i-1];
}
//grap[w2.x[l]][w2.y[l]]=0;
if(find(w3)){
p.push(w3);
}
}
if(graping[1][1]==1){
ok=1;
cout<<"Case "<<t<<": "<<w2.h<<endl;
break;
}
memcpy(graping,grap,sizeof(grap));
}
}
}
if(!ok) cout<<"Case "<<t<<": "<<-1<<endl;
cleanqueue();
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator