usaco5.4.4betsy
曹利國講的搜素例題。
結果又被虐爆了........
當時上課時貌似還是我想出了連通塊的剪枝,實現起來卻一塌糊涂。
果然我弱得會被任意一道搜索題虐爆。
一直在壓常數,最后改成了這個非常簡潔的代碼。
但問題不在這里
一開始把
if(x==n&&y==1){
if(i==n*n)
count++;
return ;
}
寫成了
if(i==n*n){
if(x==n&&y==1)
count++;
return ;
}
這個錯誤足以使之超時
——這里會走完所有 遍歷所有點的走法
而事實上只需走完所有 從1,1到n,1的路徑即可
更嚴重的問題是考慮聯通塊時,沒有考慮邊界的情況。
事實上只需把外邊框標記為已走過就行了。
代碼
結果又被虐爆了........
當時上課時貌似還是我想出了連通塊的剪枝,實現起來卻一塌糊涂。
果然我弱得會被任意一道搜索題虐爆。
一直在壓常數,最后改成了這個非常簡潔的代碼。
但問題不在這里
一開始把
if(x==n&&y==1){
if(i==n*n)
count++;
return ;
}
寫成了
if(i==n*n){
if(x==n&&y==1)
count++;
return ;
}
這個錯誤足以使之超時
——這里會走完所有 遍歷所有點的走法
而事實上只需走完所有 從1,1到n,1的路徑即可
更嚴重的問題是考慮聯通塊時,沒有考慮邊界的情況。
事實上只需把外邊框標記為已走過就行了。



freopen(
}
}

