原本想用搜尋先超時一把
然後發現剪枝居然過了
#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盞路燈,每盞燈的功率有大有小 即同一段時間內消耗的電量有多有少 老張就住在這條路中間某一路燈旁,他有一項工作就是每天早上天亮時一盞一盞地關掉這些路燈。為了給村里節省電費,老張記錄下了每盞路燈的位置和功率,他每次關燈時也都是盡快地去關,但是老張不知道怎樣去關燈才能夠最節省電...