首页 > 其他分享 >CF1401B [Ternary Sequence]

CF1401B [Ternary Sequence]

时间:2023-10-11 22:36:37浏览次数:41  
标签:d% CF1401B min Sequence Ternary 序列 x1 z1 z2

Problem

题目简述

  • 两个序列 \(A, B\)。这两个序列都是由 \(0,1,2\) 这三个数构成。

  • \(x_1,y_1,z_1\) 和 \(x_2,y_2,z_2\) 分别代表 \(A\) 序列和 \(B\) 序列中 \(0,1,2\) 出现的次数。

  • 你可以重新排列两个序列中的元素,然后生成一个新序列 \(C\),\(C\) 的生成规则如下:

\[C_i = \begin{cases}A_iB_i &A_i>B_i \\ 0&A_i = B_i\\ -A_iB_i &A_i<B_i\end{cases}\]

求:所有排列的方案中,\(C\) 序列所有元素之和的最大值。

思路

本题采用的算法:贪心、构造。

  • 尽量地凑出 \((A_i,B_i)\) 为 \((2,1)\)。
  • \(B_i=2\),则和 \(A_i=0\) 的情况配对。
  • 对于剩下的元素,把相同的元素配对。

代码

#include <bits/stdc++.h>

using namespace std;

int t;
int main() {
    scanf("%d", &t);
    int x1, y1, z1, x2, y2, z2;
    while (t--) {
        scanf("%d%d%d%d%d%d", &x1, &y1, &z1, &x2, &y2, &z2);
        x1 -= min(x1, z2), z2 -= min(x1, z2);
        z1 -= min(z1, z2), z2 -= min(z1, z2);
        int ans = (min(y2, z1) - min(y1, z2)) << 1;
        printf("%d\n", ans);
    }
    return 0;
}

标签:d%,CF1401B,min,Sequence,Ternary,序列,x1,z1,z2
From: https://www.cnblogs.com/yhx0322/p/17758380.html

相关文章

  • [CF1580D]Subsequence
    D-Subsequence发现\(f(i,j)\)不好处理,考虑将其转换成另一个函数考虑笛卡尔树,\(\min(a_i,a_{i+1},...,a_j)\)就是在笛卡尔树上,\(i\)和\(j\)的\(lca\)那么就可以将问题转移到笛卡尔树上,设\(dp[x][c]\)表示以\(x\)所处的子树中,选了\(c\)个的最大价值那么显然有:\[dp[x][i+j]=\m......
  • Codeforces Round 750 (Div. 2) B. Luntik and Subsequences
    给一个数组\(a_1,a_2,\cdots,a_n\),定义\(s=\sum_{i=1}^{n}a_i\)。询问有多少个\(a\)的子序列满足\(\suma_{i_k}=s-1\)。显然要选出一个\(1\)不加入子序列,任意一个\(0\)可以加入或不加入子序列。于是\(ans=\binom{cnt1}{1}\cdot2^{cnt0}\)。vi......
  • [AGC024E] Sequence Growing Hard
    SequenceGrowingHard不难发现设合法的条件为第k位后,需满足\(k\in[1,n)\)\(A_{i,k+1}\leqA_{i+1,k}\)或k=n。对于连续相等的一段,在任意位置放得到的A_{i+1}相同需去重。以上两种方式体现为,在末尾放x,放一段不降序列,再在末尾放x,再放一段不降序列。以此类推。所......
  • 【刷题笔记】60. Permutation Sequence(改)
    题目Theset [1,2,3,...,*n*] containsatotalof n!uniquepermutations.Bylistingandlabelingallofthepermutationsinorder,wegetthefollowingsequencefor n =3:"123""132""213""231""312"&quo......
  • Xor-Subsequence (字典树优化DP)
     思路;明显的是,后一个i要从前面一个进行更新, 利用dpeasy版本ai<=200,发现当n>=300时,对他是没有影响的,这样比较好记录ans进行更新,利用数据结构处理hard版本拆位,利用字典树dp,把参数变成相同的参数,a[i]和i,(比大小:前K位一样第K+1位不一样......
  • KingbaseES数据库导入数据invalid byte sequence for encoding
    一、适用版本:KingbaseES数据库所有版本。二、问题现象:使用备份的数据进行还原,还原过程中发生异常。日志信息:sys_restore:connectingtodatabaseforrestoresys_restore:creatingTABLE"public.table_name"sys_restore:creatingCOMMENT"public.COLUMNtable_name.co......
  • QOJ # 7106. Infinite Parenthesis Sequence
    题面传送门为什么全场切我不会?为什么全场切我不会?为什么全场切我不会?首先因为题目中要求左括号个数,我们就来关注一下左括号。对于一个左括号,假设它右边是右括号,那么这个左括号就会往右走,否则不会往右走。随便选个左括号开始标号,往左为负,往右为正,设\(p(k,i)\)表示第\(i\)个......
  • 10408 - Farey sequences - UVa
    题目要求:给定一个数n,求1—n之间有多少对互质的数,phi【i】数组表示i之前有多少个和i互质的数,a【i】表示前phi【1】+phi【2】+……+phi【i】;a【n】数组就是1---n之间互质的数的对数。。#include<stdio.h>#include<string.h>longlonga[1000010],phi[1000010];longlongn,i,j;i......
  • abc271e Subsequence Path
    E-SubsequencePath第一眼看过去感觉又是什么魔改BFS的样子,但是感觉不好弄但是往dp上想就很容易\(f[i]\)表示走到i的最小代价,按着给出的序列顺序转移即可,转移是O(1)的。代码非常简单#include<cstdio>#include<algorithm>#definefo(i,a,b)for(int(i)=(a);(i)<=(b);(i)......
  • Codeforces Round 804 (Div. 2) B. Almost Ternary Matrix
    给两个偶数\(n\)和\(m\)。任务是构造任意一个二进制矩阵,\(n\timesm\)。对于任意\((i,j)\),有且仅有两个邻居的颜色与\(a_{i,j}\)不同。邻居的定义为\(|x-x'|+|y-y'|=1\)。观察:任何\(n\timesm\)的矩阵若作为一个大型矩阵的子矩阵不会受到限制。于是构造......