獨輪車問題

2021-08-11 02:26:51 字數 1819 閱讀 3536

#include

#include

using namespace std;

queueq1;

queueq2;

queueq3;

queueq4;

int step[21][21][4][5]=;//車輪方向,0=e,1=s,2=w,3=n; 顏色;

int dr[4]=;//東南西北;

int dc[4]=;

int sx,sy,tx,ty,di;

char d[4]=;

char colour[5]=;

char scolor,dire,tcolor;

char mig[21][21]=;

void readdate();

void init();

int fbs();

int canmoveto(int x,int y,int z,int dire);

int moveto1(int x,int d,int dire);

int moveto2(int y,int d,int dire);

int moveto(int z,int dire);

int main()

}for(i=0;i<5;i++)

}if(dire=='e')

else if(dire=='s')

else if(dire=='w')

else

for(i=1;i<=20;i++)//輸入地圖; }}

void init()

int fbs()

;while(!q1.empty())

}else

v1=moveto1(u1,d1,i);

v2=moveto2(u2,d1,i);

d2=moveto(d1,i);

if(v1==tx&&v2==ty&&step3==tcolor)

else if(step[v1][v2][d2][step3]==0)}}

}if(q1.empty()&&v1==0)

step[u1][u2][d2][step2]=step[u1][u2][d1][step2]+2;

t=step[u1][u2][d2][step2];

step3=step2;

q1.push(u1);

q2.push(u2);

q3.push(d2);

q4.push(step3);//老套路,進行儲存;}}

}int canmoveto(int x,int y,int z,int dire)//如果下一步是'.',便可以向前移動;

if(dire==0)

row=x+dr[dir];

col=y+dc[dir];

if(mig[row][col]=='.')

else

}else if(dire==1)

row=x+dr[dir];

col=y+dc[dir];

if(mig[row][col]=='.')

else

}else

return 0;

}    

}int moveto1(int x,int d,int dire)//橫座標;

else

}int moveto2(int y,int d,int dire)//縱座標;

else

}int moveto(int z,int dire)//方向;

else

}else if(dire==1)

else

}else

本答案僅供參考,不得抄襲,希望你們盡早解決問題。

演算法練習 NOJ 1044 獨輪車

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 獨輪車的輪子上有紅 黃 藍 白 綠 依順時針序 5種顏色,在乙個如下圖所示的20 20的迷宮內每走乙個格仔,輪子上的顏色變化一次。獨輪車只能向前推或在原地轉向。每走一格或原地轉向90度均消耗乙個單位時間。現給定乙個起點 s 和...

NOJ1044 獨輪車 廣搜

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述獨輪車的輪子上有紅 黃 藍 白 綠 依順時針序 5種顏色,在乙個如下圖所示的20 20的迷宮內每走乙個格仔,輪子上的顏色變化一次。獨輪車只能向前推或在原地轉向。每走一格或原地轉向90度均消耗乙個單位時間。現給定乙個起點 s 和乙...

新手最快速學會獨輪車的方法

每個會騎的人都有自己的學習經歷,大家可能都不相同,我這裡說的只是方法之一,給新人參考。網上教程很多,包括找個走廊練習等,但這個不是最快的方式,因為新手無法保持直線,在走廊中經常要左扶牆右扶牆左撞牆右撞牆,反而進步的慢,但不失為一種安全的方法。另乙個毀人的是輔助輪,雖然能讓你快速學會前進後退,但讓你對...