洛谷 P2233 HNOI 公交車線路

2022-02-27 13:04:34 字數 713 閱讀 5207

洛谷

不知道大家做沒做過傳球遊戲,這一題和傳球遊戲的轉移方程幾乎一樣。

令\(a\)為\(1\)點,\(e\)為\(5\)點,那麼\(f[i][j]\)代表第i步走到j的方案數。

\[f[i][j]=f[i−1][j+1]+f[i−1][j−1]

\]因為題中給的是乙個環,所以有幾種情況。

\[if(j==8)~f[i][j]=f[i−1][1]+f[i−1][7]

\]\[if(j==1)~f[i][j]=f[i−1][8]+f[i−1][2]

\]還有,因為題中說,到了\(e\)點,就不會再動了。

\[if(j==4)~f[i][j]=f[i−1][3]

\]\[if(j==6)~f[i][j]=f[i−1][7]

\]邊界很顯然\(f[0][1]=1\)。但是我們注意這一題\(n≤10^7\),所以我們要滾動陣列。

實際上我分析了一波,應該要用矩陣快速冪優化掉\(n\)那一維的,但是我交了乙份遞推**上去也\(a\)了。

那麼就不用管了,上**:

#include using namespace std;

int main()

,n,t=0;

cin>>n;

f[t][1]=1;

for (int i=1;i<=n;++i)

}cout

}

洛谷 2233 HNOI2002 公交車路線

題目戳這裡 一句話題意 乙個大小為8的環,求從1到5正好n步的方案數 途中不能經過5 solution 鉅說這個題目很水 應該是比較容易的dp,直接從把左邊和右邊的方案數加起來即可,但是有幾個需要注意的地方 1.因為n有1e7所以需要滾動陣列。2.因為不能經過5,所以4只能從3轉移,6只能從7轉移。...

洛谷P1315 觀光公交

題目 模擬 貪心 一開始看到10 5的資料,以為要klogn就敲了個線段樹上去 結果沒考慮後效性,只過了3個點 正解 一開始先處理出每一站的到站時間是對的,而隨著修改到站時間的改變不一定滿足字首關係 假設在某一站有人很晚才出發,那不管先前改變了多少後面的到站時間都是不變的 綜上 還需要維護修改一段距...

洛谷P1315 觀光公交

題目 如果沒有氮氣加速器,則該題為乙個模擬題。但是本題存在氮氣加速器,所以我們需要考慮貪心策略。題目要求我們使所有人等待的時間最短,因此我們需要算出每段路徑 路徑即為車站之間的 d 對時間的貢獻多少,取其中最多的減去就好了。首先我們需要求出每個車站最遠向右影響到什麼地方,然後算出這段地方的影響總人數...