当前位置: 首页 > news >正文

CF1401B Ternary Sequence

CF1401B Ternary Sequence


题目描述

给定两个序列 \(a_1, a_2, \dots, a_n\)\(b_1, b_2, \dots, b_n\),每个序列中的元素都是 \(0\), \(1\)\(2\)。序列 \(a\)\(0\), \(1\), \(2\) 的个数分别为 \(x_1\), \(y_1\), \(z_1\),序列 \(b\)\(0\), \(1\), \(2\) 的个数分别为 \(x_2\), \(y_2\), \(z_2\)

你可以任意重新排列序列 \(a\)\(b\) 的元素。之后,定义序列 \(c\) 如下:

\[c_i = \begin{cases} a_i b_i, & \text{if } a_i > b_i, \\ 0, & \text{if } a_i = b_i, \\ -a_i b_i, & \text{if } a_i < b_i. \end{cases} \]

你希望使 \(\sum_{i=1}^n c_i\)(即序列 \(c\) 所有元素之和)尽可能大。请问最大可能的和是多少?


输入格式

第一行包含一个整数 \(t\)(\(1 \le t \le 10^4\)),表示测试用例的数量。

每个测试用例包含两行。每个测试用例的第一行包含三个整数 \(x_1, y_1, z_1\)(\(0 \le x_1, y_1, z_1 \le 10^8\)),分别表示序列 \(a\)\(0\), \(1\), \(2\) 的个数。

每个测试用例的第二行也包含三个整数 \(x_2, y_2, z_2\)(\(0 \le x_2, y_2, z_2 \le 10^8\),且 \(x_1 + y_1 + z_1 = x_2 + y_2 + z_2 > 0\)),分别表示序列 \(b\)\(0\), \(1\), \(2\) 的个数。


输出格式

对于每个测试用例,输出一个整数,表示序列 \(c\) 的最大可能和。


思路

  1. 先把c的各种取值情况分析一下,如下表:
a b c
a > b 2 1 2 使之尽可能多
2 0 0
1 0 0
a = b 2 2 0
1 1 0
0 0 0
a < b 1 2 -2 使之尽可能少
0 1 0
0 2 0
  1. 思路:希望使 \(\sum_{i=1}^n c_i\)(即序列 \(c\) 所有元素之和)尽可能大。即:使(a,b)=(2,1)最多,使(a,b)=(1,2)最少
0 1 2
a x y z
b xx yy zz
  1. 如何实现:使(a,b)=(2,1)最多,使(a,b)=(1,2)最少?

(1)使(a,b)=(1,2)最少:先用x消耗zz

(2)如果没有x消耗完zz,就用z消耗zz

(3)最后的答案就是剩余的(2,1)-(1,2)的个数的两倍,即2 * (min(z, yy) - min(y, zz))


AC代码

#include <bits/stdc++.h>
using namespace std;signed main()
{ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;while (t--){int x, y, z, xx, yy, zz, a, b;cin >> x >> y >> z >> xx >> yy >> zz;a = min(x, zz);x -= a;zz -= a;b = min(z, zz);z -= b;zz -= b;cout << 2 * (min(z, yy) - min(y, zz)) << '\n';}
}
http://www.gsyq.cn/news/28825.html

相关文章:

  • 离在线SDK配置
  • 傅立叶,程心和路明泽
  • 搞定三大PLC通讯:倍福与西门子、欧姆龙与西门子数据互通实战
  • 牛客2025秋季算法编程训练联赛2-(基础组提升组)
  • 树链剖分/轻重链剖分
  • 每日反思(2025_10_23)
  • C#编程时winform程序登陆记住密码和自动登录功能,关于App.config的问题及解决方案
  • [C/C++] Linux 环境变量(C/C++ ver)
  • 【题解】P14254 分割(divide)
  • Day2路径,相对与绝对
  • 第九届强网杯线上赛PWN_flag-market
  • ISFB银行木马家族演化史:从Gozi到LDR4的技术剖析
  • exgcd板子
  • 编程练习
  • Codeforces Round 976 (Div. 2) A. Find Minimum Operations
  • 20251021 NOIP模拟赛
  • RocketMQ+Spring Boot的简单实现及其深入分析
  • XSD 文档(XML Schema Definition)简介
  • LLM 场景下的强化学习技术扫盲
  • vmware虚拟机下载安装教程(付安装包)详细图文下载安装教程
  • deepin 25 虚拟机安装vgpu客户机驱动
  • CF2153D
  • 英语_阅读_inspiration for artists_待读
  • Node.js JSON import attributes All In One
  • DeepSeek的“认知提纯”能力解析
  • Plya 定理学习笔记 | ABC428G 题解
  • 告别繁琐排版!揭秘2025年公众号推文排版top1神器
  • leetcode1. 两数之和、15. 三数之和、18. 四数之和
  • vue3+elementPlus el-date-picker 自定义禁用状态hook 建立结束时间不能小于开始时间
  • 【做题记录】贪心--提高组