Three Bags CodeForces - 1467C

题意:

三堆石子,你可以取两堆石子各一个石头a,b。然后消掉a,使得b=b-a再放入b的那一堆。这样操作直到只剩下一个石子,求该石子价值最大。

题解:

构造题
可以构造出两者情况:

  1. 其中两堆都是正的,一堆都是负的
  2. 一个背包都是正的,另两个背包的最小值是负的,其他都是正的
    为什么是这样构造出来的呢?
    参考题解
    对于一个数如果进行奇数次操作,那么就是负贡献,偶数次操作就是正贡献
    假设最后一个数在数组a,那么a中剩下n-1个数,可以在最后先与其他数组合并,再和最后一个数合并,这样就都是正贡献。同理应用到b和c数组,就相当于b,c中只有一个数的负贡献,其他都是正,我们取b,c中最小的为负贡献
    或者我们直接选b,c中一个数组为正数组,另一个为负数组

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int maxn = 300010;int n1, n2, n3;
ll a[maxn], b[maxn], c[maxn];
ll s1, s2, s3;
ll m1, m2, m3;ll ans = 0;ll read(){ ll s = 0, f = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ s = s * 10 + ch - '0'; ch = getchar(); } return s * f; }int main(){n1 = read(), n2 = read(), n3 = read();for(int i = 1 ; i <= n1 ; ++i) a[i] = read(), s1 += a[i];for(int i = 1 ; i <= n2 ; ++i) b[i] = read(), s2 += b[i];for(int i = 1 ; i <= n3 ; ++i) c[i] = read(), s3 += c[i];ans = -1e18;ans = max(ans, s1 + s2 - s3); ans = max(ans, s2 + s3 - s1);ans = max(ans, s3 + s1 - s2);m1 = a[1], m2 = b[1], m3 = c[1];for(int i = 2 ; i <= n1 ; ++i) m1 = min(m1, a[i]);for(int i = 2 ; i <= n2 ; ++i) m2 = min(m2, b[i]);for(int i = 2 ; i <= n3 ; ++i) m3 = min(m3, c[i]);ans = max(ans, s1 + s2 + s3 - 2 * m1 - 2 * m2);ans = max(ans, s1 + s2 + s3 - 2 * m1 - 2 * m3);ans = max(ans, s1 + s2 + s3 - 2 * m2 - 2 * m3);printf("%lld\n", ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任正非公开信:投入 20 亿美元全面提升华为软件质量

昨天&#xff0c;华为心声社区发布了来自任正非的公开信《全面提升软件工程能力与实践&#xff0c;打造可信的高质量产品》&#xff0c;信中强调从基础代码做起&#xff0c;全面提升华为软件工程能力和实践&#xff0c;其中提到一些重要举措&#xff0c;包括编码质量、架构设计…

YBTOJ洛谷P2223:软件开发(费用流)

文章目录题目描述解析代码题目描述 某软件公司正在规划一项nnn天的软件开发计划&#xff0c;根据开发计划第iii天需要nin_ini​个软件开发人员&#xff0c;为了提高软件开发人员的效率&#xff0c;公司给软件人员提供了很多的服务&#xff0c;其中一项服务就是要为每个开发人员…

高维前缀和

高维前缀和 主要内容 昨天(\(\texttt{2022.2.28}\))打 ARC 的 D 题时&#xff0c;恍然发现我不会高维前缀和&#xff0c;匆匆来学一下。 比如二维前缀和 \(s_{i,j}\) 表示在一个二维平面上从 \((1,1)\) 到 \((i,j)\) 的所有点的权值之和&#xff0c;我们定义高维前缀和 \(s_{p_…

P3577-[POI2014]TUR-Tourism【状压dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3577 题目大意 给出nnn个点mmm条边的一张图&#xff0c;每个点有费用CiC_iCi​&#xff0c;求选出费用和最小的点使得每个点都至少有一个相邻的点&#xff08;或自己&#xff09;被选择。保证图上不存在超过101010个点的简单…

[指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数

文章目录T1&#xff1a;chocolate题目题解codeT2&#xff1a;“红色病毒”问题题目题解codeT3&#xff1a;排列组合题目题解codeT4&#xff1a;字串数题解codeT1&#xff1a;chocolate 题目 已帮大家翻译了&#xff0c;不要去UVA或者luogu上面交&#xff0c;卡精度&#xff0…

微服务之:从零搭建ocelot网关和consul集群

介绍微服务中有关键的几项技术&#xff0c;其中网关和服务服务发现&#xff0c;服务注册相辅相成。首先解释几个本次教程中需要的术语网关 Gateway&#xff08;API GW / API 网关&#xff09;&#xff0c;顾名思义&#xff0c;是企业 IT 在系统边界上提供给外部访问内部接口服务…

一起开心寒假训练总复习

文章目录畅通工程题意&#xff1a;题解&#xff1a;代码&#xff1a;小希的迷宫题解&#xff1a;代码&#xff1a;Express Mail Taking题意&#xff1a;题解&#xff1a;代码&#xff1a;Reports题意&#xff1a;题解&#xff1a;代码&#xff1a;放苹果题意&#xff1a;题解&a…

YBTOJ:放置棋子(费用流)

文章目录题目描述解析代码题目描述 有一个n*n的棋盘&#xff0c;可以在上面放棋子。 有些格子不能放棋子&#xff0c;有些格子必须放棋子&#xff0c;剩下的格子随意。 要求放好棋子之后满足如下两条要求&#xff1a; 第 i 行和第 i 列的棋子数目必须一样多。 第 i 行的棋子数…

Prufer 序列

Prufer 序列 定义与建立 Prufer 序列可以将一个带标号 \(n\) 个结点的树用 \([1,n]\) 中的 \(n-2\) 个整数表示。一个无向带标号生成树与数列之间的双射。 对于一棵树&#xff0c;每次我们选择它编号最小的叶子结点&#xff0c;删除它并记录下与它相连的节点的编号&#xff0c;…

CF476D-Dreamoon and Sets【结论】

正题 题目链接:https://www.luogu.com.cn/problem/CF476D 题目大意 求nnn个四元组使得 所有四元组内没有重复的数。四元组内的数字两两之间gcdgcdgcd都为kkk。 要求使得最大的数字最小 1≤n≤10000,1≤k≤1001\leq n\leq 10000,1\leq k\leq 1001≤n≤10000,1≤k≤100 解题思…

使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试

0. 简要介绍WRK 是一款轻量且易用的 HTTP 压力测试工具&#xff0c;通过该工具我们可以方便地对我们所开发的 WebAPI 项目进行压力测试&#xff0c;并且针对测试的情况返回结果。PS&#xff1a;Wrk 并不能针对测试的结果生成动态的图表&#xff0c;如果有这种需要&#xff0c;可…

Codeforces Round #696

Codeforces Round #696 文章目录CF1474A Puzzle From the Future题意&#xff1a;题解&#xff1a;代码&#xff1a;CF1474B Different Divisors题意&#xff1a;题解&#xff1a;代码&#xff1a;CF1474C Array Destruction题意&#xff1a;题解&#xff1a;代码&#xff1a;C…

YBTOJ洛谷P4068:数字配对(网络流)

文章目录题目描述解析代码题目描述 有n种数字&#xff0c;第 i 种数字是 ai&#xff0c;有 bi个&#xff0c;权值是 ci。 若两个数字 ai,aj 满足&#xff0c; ai 是 aj 的倍数&#xff0c;且 ai/aj 是一个质数&#xff0c;那么这两个数字可以配对&#xff0c;并获得 ci*cj 的…

Comet OJ(Contest #14)-飞翔的小鸟【tarjan】

正题 题目链接:https://www.cometoj.com/contest/73/problem/E?problem_id4124 题目大意 给出nnn个点mmm条边的一张有向图&#xff0c;边有边权&#xff0c;qqq次询问从点111走到点xxx的所有路径&#xff08;可以重复经过任何点包括点xxx&#xff09;中极差最大是多少。 1≤…

[TJOI2019]唱、跳、rap和篮球(指数型生成函数+NTT+卷积)

文章目录题目题解code1&#xff08;NTT&#xff09;code2&#xff08;EGF卷积&#xff09;题目 大中锋的学院要组织学生参观博物馆&#xff0c;要求学生们在博物馆中排成一队进行参观。他的同学可以分为四类&#xff1a;一部分最喜欢唱、一部分最喜欢跳、一部分最喜欢rap&…

数数题(计数类 DP)做题记录

数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当&#xff1a;所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和。 完全图点数为 \(n\)&#xff0c;边权 \(\in[1,k]\)&#xff0c;\(1\le n,k\le 250\)。 发现所有和 \(1\)…

Sum of Paths CodeForces - 1467D

Sum of Paths CodeForces - 1467D Tagscombinatorics dp math *2200 题意&#xff1a; 定义一条好的路径&#xff0c;当且仅当从任意点出发之后恰好经过了 k 次移动&#xff0c;定义这条路径的权值为经过点权值的总和(可重)&#xff0c;进行 q 次修改&#xff0c;每次将ak 改…

[矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

矩阵快速幂习题复习矩阵乘法及快速幂模板乘法模板快速幂模板T1&#xff1a;Arc of Dream题目题解codeT2&#xff1a;Recursive sequence题目题解codeT3&#xff1a;233 Matrix题目题解codeT4&#xff1a;Training little cats题目题解code做题的时候后悔没有保存过模板&#xf…

P3639-[APIO2013]道路费用【最小生成树】

正题 题目链接:https://www.luogu.com.cn/problem/P3639 题目大意 给出nnn个点mmm条有边权的无向图&#xff0c;然后再给出kkk条边权未定义的边&#xff0c;然后每个点有一个人数pip_ipi​。 现在要你给未确定的边权的边确定边权然后选出图的一棵最小生成树&#xff0c;之后…

你准备好了在云中工作吗?

前几天写了一篇文章 《云时代的.NET》&#xff0c;今天继续这个话题聊下云时代的技能。无服务器计算&#xff0c;容器化&#xff0c;云原生应用&#xff0c;DevOps&#xff0c;人工智能&#xff0c;机器学习以及混合云和多云解决方案等IT趋势正在成为主流或“新常态”。所有大小…