kuangbin帶我飛 專題二 搜尋高階

2021-08-30 22:07:39 字數 1199 閱讀 9336

a - eight

看起來好像在bzoj見過的?狀壓爆搜?一般好像爆搜都是用bfs的,有沒有什麼是使用高階的搜尋方法呢?

h - gap bfs+hash

應該想到bfs的,畢竟每一步都只有4種選法,最多24步?4^24肯定是太大了的,怎麼就可以保證bfs可以得到結果呢?還是說要充分理解搜尋的上界是乙個很鬆的上界?用hash判重我倒是可以理解。

hash的部落格:

搞著搞著就去看hash了?

i - a計畫

在hdu刷過,當時用的dfs刷表法過的,應該可以用優先佇列的刷表bfs提高效率。

/*

1.嘗試使用刷表法解決,bfs會不會更快呢?

2.原來傳送到對應位置是指真的對應位置而不是什麼隔壁的傳送門,是題目的歧義

3.scanf讀空行好像沒有問題的樣子

4.相對位置是傳送門對面exo me?不對,好像是因為可以無限傳送所以錯了,去掉flashin再試一次

5.dfs版本是不是可以剪枝?

6.第2的改了居然沒有修改座標偏移

*/#includeusing namespace std;

int n,m,t;

int n,m;

char g[3][12][12];

bool vis[3][12][12];

int dis[3][12][12];

void dfs(int df,int di,int dj,int d,int flashin=0)

printf("\n");

}*/if(g[df][di][dj]=='#')

}if(di0)

}if(dj0)

if(di0)

if(dj}

}} void solve()

if(g[ff][i][j]=='p')}}

} //printf("sf,si,fj=%d,%d,%d\n",sf,si,sj);

dfs(sf,si,sj,0);

if(dis[pf][pi][pj]<=t)

else }

int main()

//scanf("%s",&g[0][0]);

for(int i=0;isolve();

}}

kuangbin帶你飛專題

kuangbin帶你飛 專題一 簡單搜尋 kuangbin帶你飛 專題二 搜尋高階 kuangbin帶你飛 專題三 dancing links kuangbin帶你飛 專題四 最短路練習 kuangbin帶你飛 專題五 並查集 kuangbin帶你飛 專題六 最小生成樹 kuangbin帶你飛 專題...

kuangbin帶你飛 專題十八 字尾陣列

寫了好久才把字尾陣列的專題寫完 字尾陣列就是對字串的所有字尾來搞事,通過對這些字尾排序,來得到這些字尾之前存在的關係。字尾陣列中的sa陣列 排名陣列 和height 相鄰排名lcp 有很多很有用的特性,使得在處理一些字串問題的時候很給力,比較流行的求字尾陣列的演算法有o nlogn 的倍增求法和o ...

kuangbin帶你飛 專題一 簡單搜尋 D

n m的0 1格仔,目標是全變成0 每次反轉乙個,身邊的4個都變成相反的 0變1,1變0 問最少反轉多少個,每個格仔如果翻了填1,沒翻填0 乍一看挺恐怖的,首先想到乙個格仔不可能翻轉兩次,因為反轉兩次就變回了原來的樣子,就是相當於浪費,那麼每個格仔就是翻轉或者不翻轉兩種可能,而當第一行確定下來翻轉與...