搜尋細節題注意事項 例題(持續更新)

2021-10-19 07:12:37 字數 3381 閱讀 3028

我也不知道為什麼我寫搜尋題很容易wa,大概還是細節注意得不夠,因為搜尋題考慮的細節很多。。所以現在列出易錯點,以後要長記性ಠ_ರೃ

robot

poj1376

wa點1,多組輸入沒有清空上一次的狀態

wa點2,沒看清可訪問的範圍

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define max_n 1e8+7

#define ll long long

using

namespace std;

//定義方向

//0->向上(north)

//1->向左(west)

//2->向下(south)

//3->向右(east)

struct pos

;int dx[4]

=;int dy[4]

=;int vis[55]

[55][

4];//行、列、方向

int step[55]

[55][

4];//到達某個狀態的最小步數

int mp[55]

[55];

int getmp[55]

[55];

int n,m;

//分別為行與列

int flag;

//標記是否能找到路徑

int ans;

void

bfs(pos start,

int ex,

int ey)

q.push

(start)

;//bfs

while

(q.size()

)//方向-1

int dd2;

if(d0==0)

dd2=3;

else

dd2=d0-1;

if(vis[x0]

[y0]

[dd2]!=1

)//向前走,遞增搜尋,如果1步走不了,那麼2、3步肯定也走不了

for(

int i=

1;i<=

3;i++)if

(vis[xx]

[yy]

[d0]!=1

)}}}

intmain()

}//構造地圖

memset

(mp,0,

sizeof

(mp));

for(

int i=

1;i<=n;i++)}

} pos start;

cin>>start.x;

cin>>start.y;

int endx,endy;

cin>>endx>>endy;

char cod[

100]

; cin>>cod;

if(cod[0]

=='n'

) start.d=0;

if(cod[0]

=='w'

) start.d=1;

if(cod[0]

=='s'

) start.d=2;

if(cod[0]

=='e'

) start.d=3;

bfs(start,endx,endy);if

(flag==0)

}}

太笨了太笨了嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚

——————————

——————————

soduku

經典深搜回溯模版,一開始人蠢不按板子寫,樣例都錯得一塌糊塗。

但是自己debug看出問題來了,以下ac**附上debug行

這個題我認為我發現了乙個比較好的方法,對比其他題解,我的寫法短且清晰。

在判斷方格仔內的元素時,可以用(x+1)/2和(y+1)/2與所需要判斷的元素對比。(不過這樣子的話如果格仔特別多可能複雜度有點大。。因為是直接遍歷嗷嗚。。但是這個思路還是有辦法優化的)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define max_n 1e8+7

#define ll long long

using

namespace std;

char a[10]

[10];

struct missingm[10]

;int cnt;

void

dfs(missing p,

int num)

cout<}return;}

// cout<<"x="(int i=

1;i<=

4;i++)}

// cout<<"i"(flag1==0)

continue

;//搜尋列可行性

int flag2=1;

for(

int j=

1;j<=

4;j++)}

// cout<<"i"(flag2==0)

continue

;//搜尋方格可行性

int flag3=1;

for(

int k=

1;k<=

4;k++)}

}if(flag3==0)

break;}

// cout<<"i"(flag3==0)

continue

;//如果目前可行

a[p.x]

[p.y]

='0'

+i;dfs

(m[num+1]

,num+1)

;//回溯

// cout[p.y]

='*';}

}int

main()

//尋找丟失的位置

cnt=0;

for(

int i=

1;i<=

4;i++)}

}printf

("case #%d:\n"

,x++);

dfs(m[1]

,1);

}}

Ionic開發中注意事項 持續更新

1 angular services依賴注入的規範 自定義的service要寫在內建的angular services之後,自定義的service之間是沒有先後順序的 2 ionic1.3之後頁面為了提供效能加入了快取機制,如果不需要可以在配置頁面時將cache屬性設為false stateprov...

Python程式設計操作注意事項(持續更新)

1.利用os模組操作linux系統的時候,檔案拼接要注意 path name home data file name test.txt full dir path name file name home datatest.txt這樣的結果不是我要的,很容易因為看粗心導致錯誤。注意最後乙個檔名後面加上...

python中注意事項(更新)

1.print a,b print列印多個變數,預設中間會有個空格作為分隔符,預設以換行符結尾 docstring print value,sep end n file sys.stdout,flush false prints the values to a stream,or to sys.st...