大佬题解1
大佬题解2

E. Sorting Books

首先每本书都移动,移动次数是n能够满足题意。如果某些书不用移动,说明把隔开他们中间的书全部抽走后自然成组。

对于每本书全部移动的情况,显然我们可以选择一种颜色的书全部不案,移动别的书,抽走隔开的书后那么他们就会自然成组。

如果存在选择2种书不动的方案,不难知道该两种书出现的区间一定不能相交,因为他们都是自然成组的,如果相交会互相隔断。同理选择3种书不动的方案也一样。

预处理每种书出现的区间li,ril_i,r_ili​,ri​
状态表示:fif_ifi​表示区间[i,n][i,n][i,n]中不需要移动书的最大数量。
状态转移
倒着转移n→in\to in→i
对于第iii本书,我们可以移动此书,那么fi=fi+1f_i=f_{i+1}fi​=fi+1​
如果不动此书,那么与此书颜色相同的书也应该不动
如果lai=il_{a_i}=ilai​​=i,说明aia_iai​颜色的书整个区间出现完即可以合并fi=frai+1+cntaif_i=f_{r_{a_i}+1}+cnt_{a_i}fi​=frai​​+1​+cntai​​,选择多种书(不相交)不动的方案
否则fi=curaif_i=cur_{a_i}fi​=curai​​,只能选择一种书不动

#define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
#pragma GCC optimize(2)
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
constexpr int N=500010;
int a[N],f[N],cur[N],n;
int l[N],r[N];
int main()
{IO;cin>>n;memset(f,0,(n+1)*sizeof(int));memset(l,0x3f,(n+1)*sizeof(int));memset(r,-1,(n+1)*sizeof(int));for(int i=1;i<=n;i++){cin>>a[i];l[a[i]]=min(l[a[i]],i);r[a[i]]=max(r[a[i]],i);}for(int i=n;i;i--){cur[a[i]]++;// a[i] 移动 f[i]=f[i+1];// a[i] 不动if(i==l[a[i]]) f[i]=max(f[i],cur[a[i]]+f[r[a[i]]+1]);elsef[i]=max(f[i],cur[a[i]]);}cout<<n-f[1]<<'\n';return 0;
}

除夕快乐!

codeforces1481 E. Sorting Books(贪心+dp)相关推荐

  1. CodeForces - 1481E Sorting Books(贪心+dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...

  2. Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...

  3. URAL 1203 Scientific Conference(贪心 || DP)

    Scientific Conference 之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP.多校如果有计算几何一定要干掉-.- 题意:给 ...

  4. 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...

  5. Sorting Pancakes(dp)

    Sorting Pancakes [Link](Problem - G - Codeforces) 题意 ​ 给你 n n n个位置和 m m m个煎饼,将 m m m个煎饼放到 n n n个位置上, ...

  6. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)

    开始还觉得是贪心呢...  给你三类积木叫你叠楼房,给你的每个积木包括四个值:长 宽(可以互换) 高 类型d  d=0:你只能把它放在地上或者放在 长 宽 小于等于 自己的积木上面  d=1:你只能把 ...

  7. 【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]

    巴厘岛的雕塑 Time Limit: 10 Sec  Memory Limit: 64 MB [Submit][Status][Discuss] Description 印尼巴厘岛的公路上有许多的雕塑 ...

  8. 杭电oj1257最少拦截系统—贪心/dp最大递增子序列

    附上题目链接:杭电oj1257 这个题目有动态规划和贪心两种解决方式. 贪心法1: 对于导弹我们知道只可以从大到小的反导,一个系统必须从大到小排列.那么我们就可以选择从最高的那个导弹入手,往右找仅次于 ...

  9. CF1155D Beautiful Array 贪心,dp

    CF115DBeautiful Array 题目大意:给一个有n个元素的a数组,可以选择其中一个区间的所有数都乘上x,也可以不选,求最大子序列和. 如果没有前面的操作,就是只求最大子序列和,我们都知道 ...

最新文章

  1. 零基础可以学好UI设计吗
  2. docker查看容器创建命令
  3. Django基础必备三件套: HttpResponse render redirect
  4. java数据库编程——可滚动和可更新的结果集
  5. 阿里云服务器重启后无法访问的解决
  6. IPTV的QoE评价方法
  7. linux命令弹出移动硬盘,usb设备(移动硬盘或U盘),弹出时提示“有进程或程序占用,无法弹出”。解决办法...
  8. 计算机一级单元格填充,电脑Excel表格怎么对不连续的单元格进行批量填充
  9. Life:歌曲学习之教一个不会唱歌的人学会唱出《情非得已》、《海阔天空》、《红日》、《老男孩》等歌曲
  10. 谷歌关闭中国音乐搜索服务--有点可惜
  11. 2022韦莱韬悦人力资源管理季刊
  12. 机器学习-有监督学习-分类算法:SVM/支持向量机【SVM:高维空间里用于二分类的超平面;支持向量:超平面附近隔离带边界上的样本】【求参数(ω,b)使超平面y(x)=Φ(x)·ω+b能最优分隔两集合】
  13. akka kafka java_Jay Kreps谈基于Apache Kafka和Kafka Streams的分布式流处理
  14. 2021年N1叉车司机免费试题及N1叉车司机考试总结
  15. 干货|以产品要素设计解读线上小微信贷
  16. 密钥对和AccessKey
  17. iphone6 计算机无法检测到照相机,苹果iPhone XR摄像头黑屏不能照相是什么原因?...
  18. WML 中文参考手册
  19. ipynb转py命令
  20. 上课第一天初感。。。

热门文章

  1. python http协议获取对方的ip地址_http协议(一)基础知识
  2. scanf 返回值_scanf函数
  3. 群同态基本定理证明_群论(7): 群代数, 群表示基础
  4. java编写记事本程序出现图形,高手帮忙啊,老师布置了一个作业,要用java编写一个记事本程序...
  5. 软件构造学习笔记-第八周
  6. 详解链表在前端的应用,顺便再弄懂原型和原型链!
  7. [数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)
  8. [Java基础]类加载
  9. pb 如何导出csv_如何计算指数温度?
  10. phpword 模板 多页_高中数学:各题型答题模板,吃透,灵活运用数学公式,解题更快!...