排队买票
題意
一個演唱會即將舉行,現有 N 個歌迷排隊買票,一個人一張,而售票處規定,一個人每次最多買兩張,假設買一張票的時間為 Ti ( 1<=i<=N ) , 隊伍中相鄰的歌迷(第 j 個人和第 j+1 個人)也可以由其中的一個人買兩張票的時間為 Ri, 假如 Rj < Ti+Tj+1, 這樣做可以縮短后面的歌迷等待的時間,現給出 N , Ti,Rj, 求每個人買到票的最短時間和方法。?
分析
f[i]:=min(t[i]+f[i-1],f[i-2]+r[i-1]);
var
n,i,tj:longint;
t,r,f:array[0..10000]of longint;
begin
? ? readln(n);
? ? for i:=1 to n do
? ? read(t[i]);
? ? readln;
? ? for i:=1 to n-1 do
? ? read(r[i]);
? ? f[1]:=t[1];
? ? for i:=2 to n do
? ? if (t[i]+f[i-1])<(f[i-2]+r[i-1]) then f[i]:=f[i-1]+t[i] else f[i]:=f[i-2]+r[i-1];
? ? write(f[n]);
end.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500164.html
總結
- 上一篇: 打鼹鼠
- 下一篇: 大厅安排(normal)