hdu 1226 BFS bfs記錄路徑

2021-09-07 02:54:37 字數 1109 閱讀 7207

pid=1226

為了節省空間。您可以使用vis初始化陣列初始化-1。

發現bfseasy錯了地方 始一直wa在這裡:就是我int tp=q.front();之後立即q.pop();了,然後才去推斷是不是符合條件以break,這樣就不能依據q.empty()==1覺得沒有找到ans 由於這裡wa了

事實上也能夠vis[0] == -1來推斷

比較不理解的是 當n==0的時候 %n==0的時候怎麼處理

//#pragma comment(linker, "/stack:102400000,102400000")

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define ls(rt) rt*2

#define rs(rt) rt*2+1

#define ll long long

#define ull unsigned long long

#define rep(i,s,e) for(int i=s;i>1;

const double eps = 1e-8;

const double pi = acos(-1.0);

const int inf = 100000000;

const int maxn = 5000+100;

int n,c,m;

int a[maxn],vis[maxn],pre[maxn];//pre記錄路徑

int ans[maxn];

queueq;

int num;

void dfs(int u)

void print()

void solve()

if(!n && a[0])//

while(!q.empty())q.pop();

for(int i=0;i500)

print();

}int main()

sort(a,a+m);

solve();

}return 0;

}

hdu 1226 BFS bfs記錄路徑

為了省空間,可以用vis陣列初始化的時候初始化為 1,發現乙個bfs容易錯的地方 開始一直wa在這裡 就是我int tp q.front 之後馬上q.pop 了,然後才去判斷是不是符合條件以break,這樣就不能根據q.empty 1認為沒有找到ans 因為這裡wa了 其實也可以vis 0 1來判斷...

12 26上課記錄

課堂內容 一 資料型別 型別決定了,在記憶體中分配的位元組數,可以參與的運算型別 數值型別 int char double float void 構造型別 陣列,指標,結構體 結構體struct student 型別 struct student stu int a a 3 stu.num 2019...

hdu 1226 超級密碼

題意 給出n,c,m,密碼必須是n這個十進位制數的整數倍,c代表這個密碼是c進製數,m代表這個密碼只有m種字元構成,而且密碼不能長於500 include include include include include include include include include include ...