zoukankan      html  css  js  c++  java
  • CF1444B Divide and Sum

    B-Divide and Sum

    题目叙述

    给一个长度为 (2n) 的数组,现在要把它分为两个长度为 (n) 的数组,定义一种划分方法的权值为将其中一个从小到大排列,另一个从大到小排列后两个数组对位相减后的绝对值之和。也就是 (sum_{i=1}^n|p_i-q_i|)(p) 是递增的,(q) 是递减的。

    题解

    这题是逗乐的。

    所有划分方式的结果都是一样的。考虑把配对方式画到数轴上,可以发现任何配对方式任意两个配对组成的区间要么包含要么交叉。如果存在两个配对满足既不包含也不交叉,那么一定不满足条件。这里的配对是指可以产生贡献的,也就是第一块最大与第二块最小配对。而任意两个交叉的配对方式都可以调整为包含的配对方式(不一定仍然满足条件,但是代价不变,这一步的作用就是证明代价都一样)。所以最终一定是任何两个数对都是包含关系。而任意两个配对都是包含关系的情况只有一种,那就是最大与最小,次大与次小......以此类推。所以所有方案的权值都一样。

    idea

    这种配对、绝对值的题画到数轴上很管用,顺便可以考虑一下是否交叉,是否包含,是否分离。

  • 相关阅读:
    MegaCli 简易使用介绍
    【转】RAID 技术发展综述
    HOWTO For iSCSI-SCST && Gentoo HOWTO For iSCSI-SCST
    FC磁盘设备管理
    targetcli配置iSCSI
    NVMe协议1.3c(一) 概述
    NVMe概述
    Jenkins slave image
    ansible module
    Ansible Filter
  • 原文地址:https://www.cnblogs.com/YouthRhythms/p/14615788.html
Copyright © 2011-2022 走看看