Three Bags

我们假设a对b数组进行操作,那就是a-b,此时b是负贡献,如果他们此时是再与c合并,那么b就是正贡献了,而a就是负的。所以,我们可以看出,如果对一个数进行奇数次操作,那么这个数就是负贡献,如果是偶数就是正贡献。
假设最后一个数在a数组,对于a中n-1个数,我们可以在最后先与其他数组合并,然后再转回来与a合并,就相当于做了两次操作,所以a中的数都是正数。那么对于b,c,我们可以都留一个数,然后b中nb-1个数转到c,c中nc-1个数转到b,最后再转到a,就相当于b,c中只有一个数的负贡献,其他都是正,所以我们自然选b,c最小的那个为负贡献。
或者是我们直接选b,c中一个数组为正贡献,另一个为负贡献。
最后对各个情况取max就好了。

妙啊!!!

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<queue>
#include<map>
using namespace std;
#define LL long long
#define eps (1e-8)
const int maxn = 3e5 + 10;
const int inf = 0x3f3f3f3f;
const LL mod = 1e9 + 7;
LL a1[maxn], a2[maxn], a3[maxn];
int main()
{int n1, n2, n3;scanf("%d%d%d", &n1, &n2, &n3);LL sum1 = 0, sum2 = 0, sum3 = 0;LL min1, min2, min3;min1 = min2 = min3 = 1e15;for (int i = 1; i <= n1; i++){scanf("%lld", &a1[i]);min1 = min(min1, a1[i]);sum1 += a1[i];}for (int i = 1; i <= n2; i++){scanf("%lld", &a2[i]);min2 = min(min2, a2[i]);sum2 += a2[i];}for (int i = 1; i <= n3; i++){scanf("%lld", &a3[i]);min3 = min(min3, a3[i]);sum3 += a3[i];}LL ans, tmp, t1;ans = max(sum1 + sum2 - sum3, max(sum1 + sum3 - sum2, sum2 + sum3 - sum1));tmp = sum1 + sum2 + sum3;t1 = max(tmp - 2 * (min1 + min2), max(tmp - 2 * (min1 + min3), tmp - 2 * (min2 + min3)));ans = max(ans, t1);cout << ans << endl;return 0;
}

CodeForces - 1467C(枚举,思维)相关推荐

  1. D. Boboniu Chats with Du(枚举+思维)Codeforces Round #664 (Div. 2)

    原题链接: https://codeforces.com/contest/1395/problem/D 题意: 你用过QQ吧,用过QQ就跳过咯?就是你有一堆有趣的快乐因子,然后你要搞怪群主,如果你的快 ...

  2. codeforces 有意思的思维题 1 ~ 15

    codeforces 思维题 1.给定数组,求满足i < j and ai * aj = i + j的数对数量 2.第 i 步向前跳 i 步或后退 1 步 3.给两个点,求正方形的另两个点 4. ...

  3. CodeForces - 364A Matrix(思维+数学)

    题目链接:点击查看 题目大意:给出一个长度为 n 的,只由十进制数字组成的字符串 s,可以构造出一个大小为 n * n 的矩阵,构造方法如下:b[ i ][ j ] = s[ i ] * s[ j ] ...

  4. Mind Control CodeForces - 1291C(思维)

    You and your n−1n−1 friends have found an array of integers a1,a2,-,ana1,a2,-,an. You have decided t ...

  5. 图论 ---- CF700 C. Break Up(Tarjan找桥+枚举+思维)

    题目链接 题目大意: 题目思路: 一开始我们看到点和边很小,并且才删两条边?我就想能不能枚举删除一条边然后看看再去看能不能再删除一条边使得不连通 那么第二条边肯定是桥了!!,就是删除第1条边之后的桥 ...

  6. codeforces数学1600day4[贪心数学公式推导CodeForces - 1151D ,思维CodeForces - 1085C,数论同余+组合计数 CodeForces - 1056B]

    A - Stas and the Queue at the Buffet CodeForces - 1151D 题目大意:就是给你n个人在排队,每个人都有一个ai值和bi值,每个人的不满意度就是f(i ...

  7. CodeForces - 1408D Searchlights(思维)

    题目链接:点击查看 题目大意:在二维平面坐标系上有 n 个海盗和 m 个探照灯,假设海盗 i 的位置为 ( a[ i ] , b[ i ] ),探照灯 j 的位置为 ( c[ j ] , d[ j ] ...

  8. CodeForces - 1323D Present(思维+数学)

    题目链接:点击查看 题目大意:给出一个数列 a ,求出 题目分析:如果暴力的话显然时间复杂度是 n * n 的,我们应该想办法去优化,比赛的时候想用线段树,但是不会在维护异或的前提下区间加法,也想过用 ...

  9. Task On The Board CodeForces - 1367D(思维)

    Polycarp wrote on the board a string s containing only lowercase Latin letters ('a'-'z'). This strin ...

  10. Orac and Game of Life CodeForces - 1350E(思维+BFS)

    Please notice the unusual memory limit of this problem. Orac likes games. Recently he came up with t ...

最新文章

  1. 关于:为什么在 Real Producer 10 Plus 里面找不到 RealAudio 10 with aacPlus的解答
  2. Android菜单详解——理解android中的Menu
  3. 类型重定义 头文件预编译设置
  4. 有监督分类:集成分类(Bagging Boosting RandomForest)
  5. Android Annotation注解详解
  6. 云安全仍是企业决策者最大担心
  7. 程序员面试金典 - 面试题 17.19. 消失的两个数字(数学/位运算)
  8. 年底了,小心这些现象。别再无动于衷
  9. 判断浏览器是否支持websocket的方法
  10. myeclipse里html添加背景颜色,myeclipse怎么设置主题-设置myeclipse主题背景颜色的教程 - 河东软件园...
  11. MYSQL中HEX、UNHEX函数
  12. 关于批量导入数据以及调优的一些总结
  13. Matlab中的有限域计算
  14. word2019每页设置不同页眉
  15. 【关于PTA平台中出现的问题】warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
  16. Android实现播放音乐列表
  17. 双开助手多开分身版 v5.1.8
  18. Redis:redis通用命令;redis常见数据结构;redis客户端;redis的序列化
  19. 塔式、刀片和机架:三种类型的服务器介绍
  20. Linux基础命令-pstree树状显示进程信息

热门文章

  1. 服务器配置高点网站打开速度,网站打开速度慢,你必须要解决的事?
  2. 基于matlab七轴可伸缩关节机械臂物品抓取
  3. kakfa 3.0 创建topic流程(源码)
  4. 产品思维训练 | 常见的用户增长手段有哪些?
  5. JavaScript按住鼠标左键选中元素, 实现框选(Rubberband)效果
  6. Error: Cannot find module ‘C:\Users\AppData\Roaming\npm\node_modules\..错误,解决方法
  7. vue2 配置本地IP地址访问项目
  8. 刘备是怎样“融资”创业的?
  9. 导数、偏导数、梯度、方向导数、梯度下降、二阶导数、二阶方向导数
  10. 【操作系统】Main Memory