The solution of「AT_kupc2021_c Gacha」
\textup{AT kupc2021c Gacha}
\textup{Solution}
int N, cnt;
int a[MAXN], b[MAXN], dp[MAXN];
void slove(){
cin >> N;
for( int i = 1; i <= N; i ++ ) cin >> a[i];
for( int i = 1; i <= N; i ++ ){
cin >> b[i]; b[i] = max( a[i], b[i] );//只用计算要迂回的
}
int minn = - 2 * a[1];//前缀最小值
for( int i = 1; i <= N; i ++ ){
dp[i] = minn + b[i] * 2;
minn = min( minn, dp[i] - 2 * a[i + 1] );
}
int ans = dp[N];
for( int i = 0; i < N; i ++ )//对于每个点统计答案
ans = min( ans, dp[i] + b[N] - a[i + 1] );
cout << ans + b[N] << endl;//不输出换行判定会 WA
}
\textup{Last}
审核管理员辛苦了,如果您有所疑惑或我有所错漏,请您在评论区指出或找我,我会一定解答并且修改本题解。
如果您觉得本文写的还不错,那可以留个赞吗?
谢谢你看到这里~