2017-2018 ACM-ICPC Asia East Continent League Final C. Traffic Light(思维)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-2018 ACM-ICPC Asia East Continent League Final C. Traffic Light(思维)相关的知识,希望对你有一定的参考价值。
题意
现在要从 0 0 0号点到 n + 1 n+1 n+1号点
从 i i i到 i + 1 i+1 i+1需要的时间是 s i s_i si
且在 i ∈ [ 1 , n ] i\\in[1,n] i∈[1,n]时,如果此时 i i i处的红绿灯为红灯,需要等完这次红灯才能通过
现在你从 0 0 0号点出发的时间任意,让你构造一种最优红绿灯偏移量,
使得求最坏情况下的等待时间最短
设从 0 0 0号点出发的时间为 0 0 0
那么到 1 1 1号灯的时间是 s 0 s_0 s0,我们让 1 1 1号灯的红绿灯从 s 0 s_0 s0时间开始是绿灯
然后到 2 2 2号灯的时间是 s 0 + s 1 s_0+s_1 s0+s1,我们让 2 2 2号灯的红绿灯从这个时间开始是绿灯
这样我们一次都不需要等
但是出发时间是任意的,假设在这种构造方案下,在第 i i i个位置第一次遇到红灯
那么等完这次红灯之后,时间点是第 i i i个口子绿灯刚开始的时候
那么后面其实等价于最开始的构造,畅通无阻
所以这种情况下只需要等一个红绿灯即可
由于出发时间任意,所以等的肯定是最长的红绿灯
#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5+10;
int t,n,s[maxn],casenum;
int main()
{
cin >> t;
while( t-- )
{
cin >> n;
long long ans = 0;
for(int i=0;i<=n;i++) cin >> s[i], ans += s[i];
int mx = 0;
for(int i=1;i<=n;i++)
{
int l,r; scanf("%d%d",&l,&r);
mx = max( mx,r );
}
cout << "Case #" << ++casenum << ": " << ans+mx << endl;
}
}
以上是关于2017-2018 ACM-ICPC Asia East Continent League Final C. Traffic Light(思维)的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018 ACM-ICPC Asia Tsukuba Regional Contest
2017-2018 ACM-ICPC, Asia Daejeon Regional Contest
2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)
(好题)2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest F Pizza Delivery
2017-2018 ACM-ICPC Asia East Continent League Final J. Straight Master(差分+思维)
2017-2018 ACM-ICPC Asia East Continent League Final C. Traffic Light(思维)