分析可知(從小到大排序後)
過橋比較省時間的方法有兩種
1、a[0] a[1]先過a[0]回
a[n] a[n-1]過 a[1]回
則總時間a[1]+a[0]+a[n]+a[1]
2、a[0]帶a[n]過a[0]回
a[0]帶a[n-1]過a[0]回
則總時間a[n]+a[0]+a[n-1]+a[0]
區別在與a[1]+a[1]與a[n-1]+a[0]
兩者應該去更小的那一種方法
所以可以兩兩考慮
把最大的兩個送過橋
當最後三人以下時
剩三人
則a[0]帶a[2]過a[0]回
a[0]與a[1]過
總時間 a[2]+a[0]+a[1]
剩兩人
a[0]與a[1]過
總時間a[1]
剩1人(說明總人數只有一人)
總時間a[0]
#include
#include
using
namespace
std;
int a[1200];
int main()
if(i==2)
printf("%d\n",sum+a[0]+a[1]+a[2]);
else
if(i==1)
printf("%d\n",sum+a[1]);
else
printf("%d\n",sum+a[0]);
}return
0;}
nyoj 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...
NYOJ 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...
nyoj 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...