您的位置:首页 > 科技 > 能源 > 自建网站平台有哪些功能_网页设计人员招聘_百度指数的搜索指数_揭阳seo快速排名

自建网站平台有哪些功能_网页设计人员招聘_百度指数的搜索指数_揭阳seo快速排名

2025/8/15 10:56:31 来源:https://blog.csdn.net/m0_74377126/article/details/147002022  浏览:    关键词:自建网站平台有哪些功能_网页设计人员招聘_百度指数的搜索指数_揭阳seo快速排名
自建网站平台有哪些功能_网页设计人员招聘_百度指数的搜索指数_揭阳seo快速排名

贪心

为了方便描述,下面将贝茜和埃尔茜分别称为a、b。

已知蛋糕的数量为偶数个,b每次只能吃左右边界上的蛋糕,a每次操作将两个蛋糕变成一个,发现都会使蛋糕的数量减一,且a先操作将蛋糕数量从偶数变成奇数,b将奇数变为偶数,直到最后一次只有一个蛋糕一定是a先吃掉。

由此,如果去掉a第一次操作时的两个蛋糕,考虑从b开始操作,每次都是b吃一个,a吃一个,因此a吃掉的蛋糕数总比b多两个,即 n / 2 + 1。

因此,将a吃掉的蛋糕的总大小的最小值称为Smin,则b吃掉的蛋糕最多为Sum - Smin。

那对于b来说,b一定存在一种选法是的b吃掉的蛋糕大小大于 Sum - Smin,,因为如果a重叠的蛋糕被b给吃掉了,则在b本来的最大方案中原来就要吃掉的蛋糕被吃了,还多吃了a给帮忙的。

所以答案的最优解为 a 吃掉的蛋糕数为 Smin, b为 Sum - Smin

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 500010;
typedef long long LL;LL s[N];int main()
{int T;cin >> T;while(T --){int n;scanf("%d", &n);for(int i = 1;i <= n;i ++ ){int x;scanf("%d", &x);s[i] = s[i - 1] + x;}LL res = 1e15;int l = n / 2 + 1;for(int i = 1;i <= n;i ++){if(i >= l) res = min(res, s[i] - s[i - l]);//找到Smin}printf("%lld %lld\n", res, s[n] - res);}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com