当前位置: 代码迷 >> 综合 >> CF1555C Coin Rows(思维,博弈)
  详细解决方案

CF1555C Coin Rows(思维,博弈)

热度:89   发布时间:2023-10-13 23:51:34.0

原题链接

题目

CF1555C Coin Rows(思维,博弈)

思路

下图来自借鉴题解:

根据 A 走的路线,只有 蓝色区域或红色区域才是 B 可以取到的数。

CF1555C Coin Rows(思维,博弈)

就是说 B 只能根据 A 走过的路线来觉得自己走那条路,然后每次走的路肯定都会走最大(蓝色区域和红色区域中大的那一块)的,但是因为有 A 在,他就只能走所有最大的中的最小的。

代码

#include<bits/stdc++.h> 
using namespace std;
int main()
{
    int t;cin >> t;while (t -- ){
    int n;cin >> n;int a[n + 10] = {
    0};int b[n + 10] = {
    0};for (int i = 1; i <= n; i ++ ) {
    int x;cin >> x;a[i] = a[i - 1] + x;}for (int i = 1; i <= n; i ++ ) {
    int x;cin >> x;b[i] = b[i - 1] + x;}int ans = 0x3f3f3f3f;for (int i = 1; i <= n; i ++ ){
    ans = min (ans, max(a[n] - a[i], b[i - 1]));//B一定会取可以取的最大值,但是A肯定不会让B取到最大值,最终会让B取到所有最大值里的最小值 }cout << ans << endl; }return 0;
}

总结

需要画图去思考,这题看题解写了。

借鉴题解:

  • 题解 CF1555C Coin Rows - iMya_nlgau 的博客 - 洛谷博客 (luogu.com.cn)

  • 题解 CF1555C Coin Rows - wind_seeker 的博客 - 洛谷博客 (luogu.com.cn)

  相关解决方案