P1220 關路燈 (區間dp)

2021-09-22 02:24:25 字數 3309 閱讀 3946

題目鏈結

題解:在關完路燈 i~j 時,老張要麼在 i 處,要麼在 j 處。

1. 要麼是在關完 j 路燈後再回頭關 i 路燈的,要麼是在關完第 i+1 盞後繼續前進關掉 i 的,在這兩種情況中選擇耗能最小的。

2. 要麼是在關完 i 路燈後再回頭關 j 路燈的,要麼是在關完第 j-1 盞後繼續前進關掉 j 的,在這兩種情況中選擇耗能最小的。

因此設 dp[i][j][1] 表示在關完第 i 盞燈到第 j 盞燈後停在i處的最小耗電量,dp[i][j][2] 表示在關完第 i 盞燈到第 j 盞燈後停在 j 處的最小耗電量。

**:

%:pragma gcc optimize(3)

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

typedef long long ll;

typedef unsigned long long ull;

#define pi acos(-1.0)

#define int ll

#define inf 0x3f3f3f3f3f3f3f3f

#define p pair#define fir first

#define sec second

#define fastio ios::sync_with_stdio(false), cin.tie(0)

const int mod = 1e9 + 7;

const int maxm = 100000 + 10;

const int maxn = 1000 + 10;

int n, c;

int pos[maxn], pre[maxn];

int dp[maxn][maxn][5];

signed main()

memset(dp, inf, sizeof dp);

dp[c][c][1] = dp[c][c][2] = 0;

for(int j = c; j <= n; j ++)

}cout << min(dp[1][n][1], dp[1][n][2]) << endl;}/*

老實說,

要到幾歲才開始不相信聖誕老人的存在……

這類無聊的話題對我而言,

根本不痛不癢的。

不過,講到我從幾歲起開始不相信聖誕老人就是那個穿著紅衣服的老公公時,

我能確定地說,

我根本打從一開始就不相信。

我知道幼稚園聖誕節慶祝會時出現的聖誕老人是假的,

回溯記憶,

還能記起周圍的幼稚園小朋友都一臉不信任地望著假扮聖誕老人的園長老師。

即使沒有撞見老媽正在親吻聖誕老公公,

機靈的我也老早就懷疑只在聖誕節工作的老爺爺是否真的存在了。

不過,我卻是過了很久以後,

才發現外星人、幽靈、妖怪、超能力者以及特攝、動畫裡頭,

那些與**組織戰鬥的英雄們並不存在這世上。

不,說不定我早就發現了,

只不過一直不想承認而已。

因為,在我的內心深處,

是十分渴望那些外星人、幽靈、妖怪、超能力者以及**組織突然出現在眼前的。

和我生活的這個普通世界相比,

特攝、動畫裡頭所描繪的世界,

反而更有魅力。

我也想活在那種世界裡!

我真的好想拯救被外星人綁架並關在透明的大型豌豆夾裡頭的少女…

也想拿著雷射槍運用智慧型與勇氣擊退企圖改寫歷史的未來人…

或者光用一句咒語就收拾了惡靈跟妖怪,

再不然就是和秘密組織的超能力者進行超能力的戰鬥!

等等,冷靜一下,

假設我被外星人、幽靈、妖怪、超能力者那類的生物襲擊,

沒有任何特殊能力的我怎麼可能和他們對抗?

於是,我便如是幻想 ——

某天,班上突然轉來乙個謎樣的轉學生,

他其實是個外星人或未來人那類的生物,

並擁有未知的能力,

後來他跟壞人戰鬥,

而我只要設法讓自己被捲進那場戰爭就好了。

主要戰鬥的人是他,

而我則是追隨他的小跟班。

啊啊,實在太棒了,

我真是聰明啊!

要不然就是這樣。

某天,我那不可思議的力量突然覺醒,

就像隔空取物或精神念力之類的。

而且地球上其實還有很多擁有超能力的人類存在,

自然也會有乙個組織專門收容這些人。

不久之後,

善良的組織便派人來迎接我。

而我也成為組織的一員共同對抗企圖征服世界的**超能力者。

不過,現實卻是意外地殘酷。

現實的生活中,

並沒有半個轉學生轉來我班上,

我也沒看過ufo…

就算去了地方上常出現幽靈或妖怪的靈異地點也連個鬼影都沒有…

花了兩小時盯著桌上的鉛筆,

它卻連一微公尺都沒移動…

上課時死盯著前座同學的頭,

卻怎麼樣也無法讀出他在想什麼。

我就這樣邊驚嘆世界物理法則經常出現的現象,

邊不停自嘲,

不知從何時起,

我就開始不看電視上的ufo特別節目或靈異節目了。

因為不可能會有那種東西……

不過後來我也成長到僅對那方面的事情存有一絲留戀的程度。

國中畢業之後,

我便從那孩提時代的夢想畢業,

逐漸習慣這個世界的平凡。

而讓我還有一縷期待的一九九九年也沒有發生什麼事。

進入二十一世紀後,

人類依舊無法邁出月球到其他星球去。

看這情況,

在我還活著的時候,

想從地球當天往返阿爾法人馬座似乎是不太可能的。

我腦海中時而幻想著這些事,

終於也沒啥感慨地成為高中生 —— 直到遇到了涼宮春日。

之後,我就這麼糊里糊塗地進入學區內的縣立高中就讀。

起初我還很後悔,

因為這座學校位於很高的山上,

就算是春天也要揮汗如雨地爬上直竄山頂的坡道,

想輕鬆健行的那份悠閒早已消失無蹤。

一想到今後三年每天一大早都得這樣爬山,

我的心情就陰鬱無比。

或許是早上差點睡過頭的關係,

走路的速度自然加快許多,

雖然也曾想過以後乾脆早十分鐘起床,

慢慢走去上學就不會這麼累,

不過一想到臨起床前的那十分鐘睡眠是多麼的寶貴,

我隨即放棄了這個念頭。

所以,我相信未來的三年還是得持續這個晨間的運動。

一想到這裡,

心情就更沉重了。

*/

P1220 關路燈 區間dp

某一村莊在一條路線上安裝了 n 盞路燈,每盞燈的功率有大有小 即同一段時間內消耗的電量有多有少 老張就住在這條路中間某一路燈旁,他有一項工作就是每天早上天亮時一盞一盞地關掉這些路燈。為了給村里節省電費,老張記錄下了每盞路燈的位置和功率,他每次關燈時也都是盡快地去關,但是老張不知道怎樣去關燈才能夠最節...

P1220 關路燈 區間DP

道路上有 n 盞燈,每盞燈有兩個屬性,座標和功率。老張的速度為 1m s 初始給出老張在第幾盞燈。當到達某盞燈時 老張可以花費 0 秒關掉一盞燈,確定一種路線使所有燈的耗能最小。n leq 50,1 leq c leq n 令 f i j 表示從 i 到 j 關掉 所有燈的總耗能。那麼進一步考慮,令...

洛谷P1220 關路燈(區間dp)

某一村莊在一條路線上安裝了n盞路燈,每盞燈的功率有大有小 即同一段時間內消耗的電量有多有少 老張就住在這條路中間某一路燈旁,他有一項工作就是每天早上天亮時一盞一盞地關掉這些路燈。為了給村里節省電費,老張記錄下了每盞路燈的位置和功率,他每次關燈時也都是盡快地去關,但是老張不知道怎樣去關燈才能夠最節省電...