首页 > 其他分享 >洛谷 P1667

洛谷 P1667

时间:2022-09-27 20:58:41浏览次数:70  
标签:排列 洛谷 前缀 非负 P1667 交换

这种奇怪的在数列上操作,看看在前缀和 / 差分数组上发生了什么事往往能发现新大陆。
考虑 \(a\) 的前缀和 \(S\),不难发现操作 \([l,r]\) 就是交换 \(S_{l-1},S_r\)。
所以最终是要通过交换使得 \(S\) 单调递增,且都非负。
无解情况

  • \(S\) 中出现相同的数
  • \(S\) 中出现负数
  • \(S_n\) 不是 \(S\) 中最大的

然后将 \(S\) 离散化后就变成了一个排列通过最少的交换次数变成目标排列的问题,此处目标排列为 \(1,2,\cdots,n\)。这是一个经典问题。

标签:排列,洛谷,前缀,非负,P1667,交换
From: https://www.cnblogs.com/Kobe303/p/16735936.html

相关文章

  • 洛谷 P7774 [COCI2009-2010#2] KUTEVI(DP:完全背包)
    https://www.luogu.com.cn/problem/P7774题目大意:给定n个已知角度a[1],a[2],,,a[n];给定m个需要我们去拼凑的角度b[1],b[2],,,b[m];数组a中的角度可以使用任意多次,从......
  • 洛谷 CF1257F Make Them Similar 灰 题解
    前言本题解采用折半搜索算法完成,对于不打算用这种方法的同学,这篇题解可能会浪费你人生中宝贵的十几分钟。思路此题似乎找不出什么好的性质,那么考虑暴力。发现\(x,a\)......
  • 神奇的博弈结论(摘自洛谷)
    神奇的博弈结论(摘自洛谷)一.巴什博奕\((BashGame):\)A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。这应该是最古老的关于巴什博奕的游戏了吧。其实如果知道原......
  • 洛谷P1463 反素数()
    P1463[POI2001][HAOI2007]反素数100%数据时,N<=2e9,即使使用线性的欧拉筛也会TLE如此大的数据范围,O(1)的时间复杂度都跑不过,说明要么打表,要么就需要通过计算直接得出答案,......
  • 洛谷 P1114 “非常男女”计划 (前缀和)
    https://www.luogu.com.cn/problem/P1114题目大意:给定一排数字,让我们求出最大的区间内1和0的个数相等时的区间长度。输入9010001100输出6输入10011......
  • 洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)
    https://www.luogu.com.cn/problem/P1025给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。求能凑出的数量。输入73输出4明明是一道很简单的dfs,......
  • AcWing 133/洛谷2827 蚯蚓
    首先考虑根据题意模拟#include<bits/stdc++.h>#defineintlonglong//懒死谁了usingnamespacestd;typedeflonglongllinlinevoidrd(int&x){x=0;b......
  • 洛谷P1290 欧几里德的游戏
    链接:https://www.luogu.com.cn/problem/P1290不妨假设\(b\leqa\)。显然,当\(a\)是\(b\)的倍数时,为必胜态。接下来考虑\(a\)不为\(b\)的倍数时:1.\(a\)小于\(2*b\)时,当前......
  • 洛谷P3372【模板】线段树1
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intn,m,a[N];intadd[N*4];//账本longlongsum[N*4];//a[k]的区间和voidbuild(intk,intl,i......
  • 洛谷真题字典树
    P8306【模板】字典树1#include<bits/stdc++.h>2usingnamespacestd;3intt,n,q;4constintmaxn=3000005;5chars[maxn];6intson[maxn][80],cnt[ma......