洛谷 題解 P1220 關路燈

2022-02-13 23:23:27 字數 781 閱讀 8281

搜尋

inline void dfs(int now,int l,int r,int cnt,int sum,int k)

/*now為當前點

l為左端點

r為右端點

cnt為當前耗電量

sum為開著的燈的總耗電

k為還有幾盞燈開著

*/

if(l>1)dfs(l-1,l-1,r,cnt+(m[now]-m[l-1])*sum,sum-w[l-1],k-1);

//若左端點可以向前移,那麼就往前移乙個單位,順便更新一下值

if(r=ans)return;//很好理解

dfs(c,c,c,0,tot-w[c],n-1);

//當前所在的路燈肯定被關掉了

完整**:

#includeusing namespace std;

int n,c;

int w[60],m[60];

int tot,ans=0x3f3f3f3f;

inline int read()

return tot;

}inline void dfs(int now,int l,int r,int cnt,int sum,int k)

//cout<1)dfs(l-1,l-1,r,cnt+(m[now]-m[l-1])*sum,sum-w[l-1],k-1);

if(r}int main()

洛谷 P1220 關路燈

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

洛谷 P1220 關路燈

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

洛谷 P1220 關路燈

原本想用搜尋先超時一把 然後發現剪枝居然過了 include include include include include include using namespace std int d 10005 記錄燈的功率 int lef,righ,minx int run int x,int y 記錄...