洛谷 P1076 尋寶

2021-09-26 14:13:15 字數 1277 閱讀 2699

這道題嘛。。。以前看的時候都不知道怎麼寫,現在才會寫了

於是有了乙份肯定能跑出正確答案的**

#include

#include

using

namespace std;

int n,m;

struct nodea[

100007][

107]

;int qs;

//在這一層的起始位置

long

long ans;

//保險起見

intmain()

ans+

=a[i+1]

[mqwz]

.sz;

//加上更上一層的房間的數字

ans%

=20123

;//邊加邊模

qs=mqwz;

//更新這一層的起始位置(到了下一層了)

} cout<20123

return0;

}

然而,這是tle的

不管是用scanf+printf,還是關閉同步,還是開啟o2,都不行

所以……要優化

如果數字比這一層所有的有樓梯的房間的總數還多,就模一下

寫法是:

if

(mb>mclts[i]

) mb=

(mb-1)

%mclts[i]+1

;

也可以寫成:

if

(mb>mclts[i]

)

這樣就避免了跑很多次

#include

#include

using

namespace std;

int n,m;

struct nodea[

100007][

107]

;int qs;

long

long ans;

int mclts[

100007];

intmain()

while

(sumans+

=a[i+1]

[mqwz]

.sz;

ans%

=20123

; qs=mqwz;

} cout<20123

}

(除了取模運算部分其他都是一樣的,就不再寫一遍注釋了)

洛谷 P4892 GodFly的尋寶之旅

題意有點繞,讀懂題意之後就是一道簡單計數狀壓dp。大致題意 給出一幅圖,要求計算從起點開始走到終點的 在題目特殊規則下統計的 路徑條數。根據題意,一條路徑會被乙個複雜的公式分成0路徑和1路徑兩種,而題目則是要求到達終點的opt opt為已給的0或1 路徑有多少。opt為輸入資料 include de...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...