POJ 1167 解題報告

2021-05-01 19:46:52 字數 517 閱讀 6571

這題是拿來練習dfs的。

題中的輸入中,乙個時間對應了一輛bus。

對這個資料進行嘗試搜尋。

這裡不是直接對資料進行搜尋,而是利用乙個陣列time[60]

time[x]表示x在輸入資料中出現的次數。

now[x]表示x在已使用的資料中出現的次數。

搜尋的思路:

find函式:

1.判斷是否搜尋結束

2.如果x無效,那麼跳過。當time[x]-now[x]<=0時,則x無效,也就是說,這個x已經不能使用

3.first[60]儲存了bus route頭一輛bus的資訊。也就是說,如果x是bus route頭一輛bus,那麼first[x]++。

這裡先嘗試x不是bus route頭一輛bus,嘗試遍歷每一條bus route。

4.最後嘗試x是bus route頭一輛bus,遍歷。

題中規定了 每個bus route至少有兩輛bus,可以利用這個來剪枝。

說的不是很清楚,邊看**邊看思路吧

**如下

poj解題報告 1328

不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...

poj解題報告 2586

這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...

poj解題報告 2635

這題特別好理解,就是 坑啊。題意就是給乙個數,這個數是兩個大素數的積,再給出乙個數,如果最小的素數比給的數大,列印good,否則列印bad和最小的素數。這題用的方法是高精度求模 同餘模定理。還有素數打表,把10 6內的素數全部預打表,在求模時則列舉到小於l為止。注意打表不能只打到100w,要保證素數...