HDU 1175連連看 dfs記錄方向 強力剪枝

2021-08-20 08:44:33 字數 642 閱讀 5693

題目大意:與連連看類似,不過不同的是它不能從外面繞過去,這相當於降低了題目難度。需要注意的是,如果你在搜尋過程中遇到了和起點位置一樣的數,但它不是終點位置的話需要返回。

**:

#include#includeusing namespace std;

const int maxn=1010;

int vis[maxn][maxn],mp[maxn][maxn];

int n,m;

bool check(int x,int y)

int flag,ans,x1,x2,y1,y2;//flag這裡貌似沒什麼用,但懶得改了;

void dfs(int x,int y,int t,int zz)

if(x==x2&&y==y2)

// cout<<123<>n>>m&&n&&m)

}int t;

cin>>t;

for(i=0;i>x1>>y1>>x2>>y2;

if(mp[x1][y1]==mp[x2][y2]&&mp[x1][y1]!=0)

else

cout<<"no"<}

else

cout<<"no"

}

}

hdu 1175 連連看 dfs搜尋

題目大意 因為是中文題,就不多說了。題目對兩塊棋子能否消除的限制為 兩者之間的連線不能轉向2次以上,並且不能穿過其他棋子.個人想法 dfs.如果能滿足題目的條件從一塊搜尋到另一塊,那麼就輸出yes,否則no。但這邊不知道為何,如果沒有在轉向兩次以後進行剪枝 接下去就只朝乙個方向走 的話,就是超時.結...

HDU 1175 連連看 DFS 剪枝

題目大意 連連看,中文題就不解釋了!解題思路 好坑的題呀,除錯了我n多個小時,怎麼都不對,後邊各種中間結果輸出都用上了,交上去一直wa。早上過來重新寫了一次,居然a了。完全不能理解呀!說下這個題吧,主要是對各個條件的剪枝上,其它都很簡單。在剪枝上的分析就不具體說了,給了很詳細的注釋了,各種細節注意就...

HDU 1175 連連看 搜尋,dfs

類似於迷宮問題,主要就在轉折的處理上,在這裡可以有乙個強剪枝,具體見 參考部落格 感謝!include include include include using namespace std int map 1010 1010 int tmap 1010 1010 int n,m,q int x1,...