首页 > 其他分享 >Sorting By Multiplication

Sorting By Multiplication

时间:2024-08-14 16:42:26浏览次数:7  
标签:Sorting text 跨段 升序 负数 Multiplication 操作 正数

严谨证明其实真的很难

设每次操作为\((l,r,x)\),其中\(l,r\)表示操作的左右端点,\(x\)表示乘以的值

首先我们知道,最后由于严格升序,所以数列分成三段,第一段为负数,第二段为\(0\),第三段为正数;操作之间的顺序无关紧要;操作之间不会跨段:如果有跨段,那么一定是跨了三段(只跨两段的话,有一段就是\(0\),就相当于没有跨段);如果某个跨段的操作的\(x\)为负数,设为\((l,r,x)\),那么所有满足左端点为\(l\)右端点为\(r\)的段的个数一定是偶数,所以可以将所有\(x\)取反,也就是说此时所有跨段的操作的\(x\)都是正数,而这种段的作用只有可能让\(<\)变成\(≥\),为负作用,还不如不要,于是可以去掉;所以不存在跨段的操作

实际上不会有乘以\(0\)的操作(也就是数列不会出现\(0\))。假设有\((l,r,0)\),由于最后严格升序,所以\(l=r\);而对任意一种包含\((l,l,0)\)的方案,我们都可以去掉\((l,l,0)\),并将正数段的所有操作的\(x\)变成一个很大的值(但是不改变正数段的严格升序性)来使得序列仍然满足条件

于是现在分别考虑两段的操作。

对于正数段,可以将所有操作的\(r\)变成\(n\)而不改变严格升序性,这样的话一次操作最多只能让一个\(≥\)变成\(<\),所以\(≥\)的个数就是答案

对于负数段,我们先考虑所有形如\((1,r,x)\)的操作。这些操作显然有奇数个(因为\(a_1\)是负数)。设这些操作的\(r\)的最大值为\(r_{\text{max}}\),那么任取一个\((1,r_{\text{max}},x)\),并将其他所有的\((1,r,x)\)的\(x\)取绝对值,显然不会改变序列的样子;此时再对\([2,r_{\text{max}}]\)考虑同样的事情,将每一个\(a_i\)被负数覆盖的次数变成刚好为一次,即就是\((1,r_{\text{max}},x)\);然后从\(r_{\text{max}}+1\)开始重复,最后会发现所有的负数段互相不重叠,且之间没缝隙;此时我们将所有正数段的\(l\)全部变成\(1\)(这样显然不改变严格升序性),然后全部放在负数段里面,具体来说,被整个正数段完整跨过的负数段的\(x\)乘以这个正数段的\(x\),没有完整跨过的的负数段拆成两段,前一段的\(x\)乘以这个正数段的\(x\),后一个的\(x\)不变,如下

image

这样操作次数显然不变且序列不变;最终负数段就会变成互不重叠且之间没有空隙的段;而一个负数段会将其内部的符号全部取反,所以一个负数段的内部的符号一定没有\(≤\),所以\(≤\)的个数就是下界

标签:Sorting,text,跨段,升序,负数,Multiplication,操作,正数
From: https://www.cnblogs.com/dingxingdi/p/18359279

相关文章

  • StarNet:关于 Element-wise Multiplication 的高性能解释研究 | CVPR 2024
    论文揭示了staroperation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力。基于此提出了StarNet,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟来源:晓飞的算法工程笔记公众号论文:RewritetheStars论文地址:https://arxiv.org/abs/240......
  • Atcoder nomura2020F Sorting Game
    首先考虑如果固定了\(a\),如何判定这个\(a\)是否能被排序。如果存在\(a_i>a_j(i<j)\),那么\(a_i\)肯定要交换到\(a_j\)后面,那么就肯定会交换\(a_i,a_j\)。于是合法条件就是如果存在\(a_i>a_j(i<j)\),那么\(a_i,a_j\)只相差一个二进制位。那就还能知道此时一......
  • 2024牛客暑期多校训练营7 C Array Sorting 题解
    乱搞非正解写法。分类讨论各种情况。降序排序对应交换即可数组个数小直接考虑相邻的交换其他都看做随机数据考虑结合前面情况,很容易想到,先把数组变成一个尽量有序的数组(每个元素和自己正确的位置相差不大)。最后再多次相邻交换,使得每个元素都在正确位置。把数组变成......
  • Unity强化工程 之 Mask & SortingGroup
    本文仅作笔记学习和分享,不用做任何商业用途本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正1.Mask遮罩故名思意就是起到遮挡作用的罩子:精灵遮罩-Unity手册如果我想让sprite与遮罩发生交互,那么我需要勾选spritrrenderer的交互选项之后就可......
  • 题解:CodeForces 843A Sorting by Subsequences[模拟/排序]
    CodeForces843AA.SortingbySubsequencestimelimitpertest:1secondmemorylimitpertest:256megabytesinputstandardinputoutputstandardoutputYouaregivenasequence\(a_1, a_2, ..., a_n\)consistingofdifferentintegers.Itisrequiredtos......
  • E. Permutation Sorting
    原题链接题解对于数\(i\)来说,如果其当前位置到最终位置上,有\(k\)个数不在最终位置,那么数\(i\)至少要走\(k\)次如果这\(k\)个数里,有\(m\)个在数\(i\)回到最终位置时,提前回到了最终位置,那么数\(i\)要走\(k-m\)次具象化就是一个一个的区间(起点为当前位置,终点......
  • Vitis HLS 学习笔记--Stream Chain Matrix Multiplication
    目录1.简介2.示例解析2.1示例功能说明2.2函数说明 2.2.1 mmult函数2.2.2 mm2s函数2.2.3 s2mm函数2.2.4总示意图3.总结1.简介这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了ap_ctrl_chain,以展示如何重叠多个内核调用队列以提供更高的性......
  • WPF CollectionViewSource.GetDefaultView ICollectionViewLiveShaping IsLiveSorting
    <Windowx:Class="WpfApp147.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • Codeforces Round 949 (Div. 2)D. Turtle and Multiplication(欧拉路径、线性筛、思维
    Problem-D-Codeforces  按照官方正解做即可,顺带存个jiangly板子。1#include<bits/stdc++.h>23usingi64=longlong;4std::vector<int>minp,primes;56voidsieve(intn){7minp.assign(n+1,0);8primes.clear();910......
  • WPF CollectionViewSource ICollectionViewLiveShaping IsLiveSorting
    <Windowx:Class="WpfApp82.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......