洛谷 P1220 關路燈

2021-07-27 09:05:29 字數 1177 閱讀 9745

原本想用搜尋先超時一把

然後發現剪枝居然過了

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int d[10005];//記錄燈的功率

int lef,righ,minx;

int run(int x,int y)//記錄跑到了哪個位置

void dfs(int l,int s,int sum,int n)

int t=d[l];

sum-=t;

d[l]=0;

int x;

if(run(l,1)<=righ)//往右跑

if(run(l,-1)>=lef)//往左跑

d[l]=t;//回溯

}int main()

}dfs(l,0,sum-t,n);

cout

《下面是輸出路徑

#include

#include

#include

#include

#include

#include

using

namespace

std;

int d[10005];

int dp[10005];//動態記錄路徑變化

int c[10005];//記錄最小值路徑

int re;

map tag;

int lef,righ,minx;

int run(int x,int y)

void dfs(int l,int s,int sum,int n)

minx=s;

}return ;

}int t=d[l];

sum-=t;

d[l]=0;

int x;

if(run(l,1)<=righ)

if(run(l,-1)>=lef)

d[l]=t;

}int main()

}dfs(l,0,sum-t,n);

cout

=1;i--)//輸出路徑

cout

<}

洛谷 P1220 關路燈

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

洛谷 P1220 關路燈

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

關路燈 洛谷p1220

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