codeforces 1555 C. Coin Rows (暴力+前缀和)

Posted _Rikka_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 1555 C. Coin Rows (暴力+前缀和)相关的知识,希望对你有一定的参考价值。

题目

思路:主要注意看一个条件只有两行,且只能向右或向下走,那Alice只有N种移动情况,从第一列就开始下移再往右,先右行至第二列再下移往右,先行至第三列再下移…
而对于每种情况Bob实际上只会从两种情况选一种最大的,一种是只取第一行中Alice没走过的,一种是第二行中Alice没走过的,看下面例子


Alice是蓝色线,Bob贪心之下选的是Max(6,5+2)=7。最后的答案只要把Alice的所有情况都遍历一遍,取所有情况的最小即可(注意用前缀和优化),细节看代码。

#include<iostream>
#include<math.h>

using namespace std;
typedef long long ll;

const int Max = 1e6 + 5;
ll a[Max], b[Max];

int main()
{
	int t;cin >> t;
	while (t--)
	{
		int n;cin >> n;

		for (int i = 1;i <= n;i++)
		{
			cin >> a[i];
			a[i]+= a[i - 1];
		}
		for (int i = 1;i <= n;i++)
		{
			cin >> b[i];
			b[i] += b[i - 1];
		}

		ll mi = 1e16+5;
		for (int i = 1;i <= n;i++)
		{
			mi = min(mi, max(a[n] - a[i], b[i - 1]));
		}

		cout << mi << endl;
	}
}

以上是关于codeforces 1555 C. Coin Rows (暴力+前缀和)的主要内容,如果未能解决你的问题,请参考以下文章

cf1555C Coin Rows

Educational Codeforces112 1555.E. Boring Segments(尺取+线段树)

C. Coin Troubles 有依赖的背包 + 完全背包变形

Codeforces1555 E. Boring Segments(尺取+线段树)

Codeforces1555 D. Say No to Palindromes(思维,前缀和)

Codeforces508 C. Anya and Ghosts(贪心)