HDU2782 DFS題目解答

2022-09-23 20:54:22 字數 671 閱讀 5560

hdu2782 dfs題目解答:乙個n*m的地圖中有平地和石頭,有石頭的格仔不能走。從任一點出發後,除非碰到地圖邊界或者石頭或者已經走過的格仔,此時可以任意選擇乙個新的方向。

求能夠到達格仔數最多的走法,輸出格仔數、起點座標、初始方向(用e/n/s/w表示)。如果有多組解,輸出字典序最小的座標,如果有多種方向,按e, n, s, w的順序輸出第乙個。

思路:4000ms,果斷暴搜一發,題目要求多組解按字典序輸出第乙個解,可以直接按照字典序來求解,只有後面的解大於前面的解再更新結果即可。

#include

#include

#include

#include

#include

#include

using namespace std;

#define inf 0x3f3f3f3f

typedef long long ll;

int d[2][4]=;//對應ensw順序

int g[630][630],m,n,sum,ans;

char dir[5]=;

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

}g[i][j]=0;}}

}printf("case %d: %d %d %d %c\n",++cas,ans,x,y,dir[pos]);}}

OJ2782 繼續切水題

輸入的時候一開始把字串末尾的 0 也輸出了,所以總是提示輸出錯誤,後來改了輸入方法就對了,細節要注意,另外要學習幾種輸入輸出的方法 include includeusing namespace std int main for int i 0 i附輸入輸出學習 1 cin讀入乙個字元 char c ...

hdu 5423 樹上dfs 水題

給你一顆樹,問是否存在節點深度全部相同但存在某個節點的父親不同的 求每乙個深度的節點個數,只要存在乙個深度有超過乙個的節點並且下乙個深度有節點存在,就滿足了上述的條件 include include include include include include include include in...

HDU1584 蜘蛛牌 DFS簡單題

這個題一開始難哭,想不通為什麼,現在大概理一理,思路如下 1.一共只有十張牌,所以只是隨機排列,並求出其中的距離之和 因為1只能接2,2接3,以此類推 2.eg 1 4 5 2 3 所以應該先從1 2,距離 abs 4 1 3 3.而且因為需要掃瞄,所以令初始標記為0,當滿足要求則變為1,掃一遍後,...