首页 > 其他分享 >ACSX: Jan&Feb, 2023

ACSX: Jan&Feb, 2023

时间:2023-01-18 23:11:07浏览次数:48  
标签:le Feb ACSX 线段 张卡牌 Jan 序列 代价

飞花

有 \(n(n\le 2\times 10^5)\) 张卡牌,正面 \(a_i\),反面 \(b_i\),所有 \(1\le a_i,b_i\le 2n\) 且互不相同。
你可以选择翻任意张卡牌,翻完后可不耗代价任意重排,问最少翻多少张牌,使得最后有 \(a_1<a_2<a_3<...<a_n\) 且 \(b_1>b_2>b_3>...>b_n\)?

首先有个小性质一定得把握到,这是突破口:若存在 \(a_i>n,b_i>n\) 则一定无解(原因是若存在这样的一组则必存在一组都小于等于 n 的,这两个不可能形成答案的pattern)
有了这个那就是说每一张牌都是一个在 [1,n] 一个在 [n+1,2n],那么都好做了。这样显然按照较小面递增的顺序排列就需要得到两个降序列,第一个不再翻,第二个再翻一次接到右边。也就是问题转化为一个数组 \(\{A_n\}\),有两个初始为正无穷的降序列,每个元素放到0序列末端需要支付0/1的代价,放到1序列末端需要支付0/1的代价(钦定0序列是后来不再翻的,1序列是后来再翻的),需要保证是降序列,最小代价是多少。

显然的 DP,设 \(f(i,j,0/1)\) 表示到 \(i\),\(j\) 为“另一个序列”的末数值,\(A_i\) 放到哪个序列,的最小代价。
if(a[i+1]<a[i]) f[i+1][x][0]<----f[i][x][0]+[a[i+1]已翻转],f[i+1][x][1]<---f[i][x][1]+[a[i+1]未翻转]
f[i+1][a[i]][0]<----f[i][x>a[i+1]][1]+[a[i+1]已翻转],f[i+1][a[i]][1]<----f[i][x>a[i+1]][0]+[a[i+1]未翻转]

使用线段树维护转移。注意如果 a[i+1]>a[i] 的话是要清空线段树的(全设成INF),然后线段树是单点修改查区间最小值。

标签:le,Feb,ACSX,线段,张卡牌,Jan,序列,代价
From: https://www.cnblogs.com/impyl/p/17060836.html

相关文章

  • Django一个“高质量”小白的学习之路(给自己看)
     第一天day1:人类的思维倾向于直白、视觉和线性,还有好奇心,这是祖先遗传下来的思维习惯。如果论结果,显然我是一个计算机学习的失败者。因为我作为一个已经刚到不惑之年......
  • django model 创建表参数字段
    首先,关于model,是数据库与python代码里的一个映射关系,每一个model是django.db.models.Model的一个子类。model里每一个属性值(即字段)代表数据库的字段,通过定义mode......
  • Django[二] 创建一个新的项目
    IDE:PyCharm2021.3.1(ProfessionalEdition)1.在开始界面中创建一个NewProject  如果是专业版(可能需要安装完Django),可以看到这个Django选项。  创建完成......
  • Django[一]安装和配置
    日期:2023年1月18日python版本:python3.10.0Django版本:4.1.51.pip安装:在安装完Python并配置完环境变量的提前下,在cmd窗口直接执行:pipinstalldjango   2.验......
  • Django一个“高质量”小白的学习之路
    人类的思维倾向于直白、视觉和线性,还有好奇心,这是祖先遗传下来的思维习惯。如果论结果,显然我是一个计算机学习的失败者。因为我作为一个已经刚到不惑之年的中年男子,还在......
  • django-rest-swagger
    Swagger是一个API开发者的工具框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模型紧密集成到......
  • Django接入Swagger,生成Swagger接口文档-操作解析
        Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新。当......
  • 17th Jan 1814. 统计一个数组中好对子的数目(每日一题)
    给你一个数组nums,数组中只包含非负整数。定义rev(x)的值为将整数x各个数字位反转得到的结果。比方说rev(123)=321,rev(120)=21。我们称满足下面条件的下标对......
  • 17th Jan HJ5 进制转换
    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。数据范围:保证结果在1\len\le2^{31}-1\1≤n≤231−1输入描述:输入一个十六进制的数值字符串。输出描述......
  • 17th Jan NC61 两数之和
    给出一个整型数组numbers和一个目标值target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。(注:返回的数组下标从1开始算起,保证target一定可以由......