当前位置: 首页 > news >正文

P11013 「ALFR Round 4」C 粉碎 题解

P11013 「ALFR Round 4」C 粉碎

起初有 nnn 张牌,第 iii 张牌的点数为 AiA_iAi
重复执行 nnn 轮以下操作:
先选择将第 iii 张牌置于牌堆的最左边或者最右边;
接着立即删除牌堆内相同点数的两个牌及之间的牌。
问最多能粉碎多少张牌。
1≤n≤5×1051\le n\le5\times10^51n5×1051≤Ai≤n1\le A_i\le n1Ain

思路
DP+贪心(?
模拟发现,每个牌有三种状态:一定被删,一定留下,留下或删除都可以。
fi,0/1f_{i,0/1}fi,0/1 表示第 iii 张牌删去/保留后,剩下的最小牌数。那我们可以推出 fi,0=0f_{i,0}=0fi,0=0fi,1=min⁡(fi−1,0,fi−1,1)f_{i,1}=\min (f_{i-1,0},f_{i-1,1})fi,1=min(fi1,0fi1,1)。考虑什么时候会出现都可以的情况,只有当这个会导致删除的时候,此时放在左边或者右边不确定,这区间(0,i)内的数也就删除或保留不确定了。
不过直接一个个更新复杂度太高,我们发现每次更新的都是前缀,所以只需要记录最大值就可以了。

code:

#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int n,a[N];
int T;
int num[N],lst[N];
int p[N],f[N][2]; 
int main(){scanf("%d",&T);while(T--){memset(num,0,sizeof num);memset(lst,0,sizeof lst);memset(p,0,sizeof p);memset(f,0x3f,sizeof f);scanf("%d",&n);for(int i=1;i<=n;i++) {scanf("%d",&a[i]);	if(num[a[i]]==0){p[i]=1;}lst[i]=num[a[i]];num[a[i]]=i;}int mx=0;for(int i=1;i<=n;i++){int pre=lst[i];if(pre<=mx&&p[pre]==1) p[pre]=2;if(p[pre]==0){//删去 p[i]=1;f[i][1]=min(f[i-1][1],f[i-1][0])+1;}else if(p[pre]==1){p[i]=0;f[i][0]=0;mx=i;}else if(p[pre]==2){p[i]=2;f[i][1]=min(f[i-1][1],f[i-1][0])+1;f[i][0]=0;mx=i;}}printf("%d\n",max(0,n-min(f[n][0],f[n][1])));}return 0;
}
http://www.dtcms.com/a/423131.html

相关文章:

  • 跨境商城网站建设公司做小程序要多少钱
  • scratch绘制帽子花 2025年6月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析
  • 特色专业建设展示网站北京seo培训
  • 网络原理-HTTP补充1
  • 做外贸相关的网站全面的vi设计公司
  • 如何构建高效 AI 智能体
  • 9.25训练赛+Codeforces1054 (Div. 3)
  • 老Java项目访问提示orcale 19c ORA-01017: 用户名/口令无效; 登录被拒绝
  • 目标检测:yolov7算法在RK3588上部署
  • Maya Python: 安装pymel
  • 全景网站开发待遇南宁logo设计公司
  • 北京工商局网站怎么做增资网易代理暴雪
  • 制造行业订单全生命周期管理数仓项目实战
  • 《深度学习入门:基于Python的理论与实现》第7章 卷积神经网络笔记
  • 网络游戏编程 - Socket 技术以及应用 - 上 -《了解游戏网络基础知识》
  • 珠海建网站的网络公司网站名称格式
  • 舆情观察类文章写作指南与新浪舆情通应用
  • C语言——深入理解函数声明定义和调用访问
  • 网站开发大约多少钱制作一个网站的步骤是什么
  • RabbitMQ (一)简单模式
  • 阿里巴巴 Java 开发手册 v1.2.0
  • Leetcode+Java+单调栈
  • Word和WPS文字如何从特定的页开始编号(页码)?
  • EDSR模型
  • thinkphp做中英文网站网站跟app区别
  • 6. 数据库设计基础知识
  • 【nginx平滑升级演示】
  • 桥梁缺陷检测数据集:腐蚀、剥落、渗透等5类,3k+图像,yolo标注
  • 上交提出单图生成3D场景方法SceneGen:单图输入,多资源输出,3D 合成性能飙升的“秘密武器”!
  • 百度验证网站济南网络科技公司