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

游园安排--最长上升子序列+输出序列

1.最长上升子序列,用二分+贪心算法优化的那个

2.分割提取游客名字,与蓝肽子序列类似

3.关键是我不知道怎么输出答案序列,这里学习了一种不按序实现的,思想是倒序能凑上就加入,反正从ma开始遍历,生成一定是答案之一

P8736 [蓝桥杯 2020 国 B] 游园安排 - 洛谷

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<int,int> pii;
string s;
int l[N],n;
string g[N];
string an[N];
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);vector<string> a;cin>>s;string b;for(int i=0;i<s.size();i++)///分割提取游客名字 {if(s[i]>='A'&&s[i]<='Z'){if(b!="")a.push_back(b);b="";b.insert(b.end(),s[i]);}else b.insert(b.end(),s[i]);}if(b!="")a.push_back(b);n=a.size();for(int i=0;i<n;i++) g[i]="zzzzzzzzzzzzzzzzz";int cl=0;for(int i=0;i<n;i++){int p=lower_bound(g,g+n,a[i])-g;///用二分贪心实现的最长上升子序列算法 g[p]=a[i];l[i]=p+1;cl=max(p+1,cl);}int x=0;for(int i=n-1;i>=0;i--)///倒序输出最长上升子序列 ///主打一个能凑成就行///因为可能有多个,而题目要求输出字典序最小的///这个做不到,但是容易理解 {if(l[i]==cl){an[x++]=a[i];cl--;}}for(int i=x-1;i>=0;i--) cout<<an[i];return 0;
}

http://www.xdnf.cn/news/627175.html

相关文章:

  • 力扣:《螺旋矩阵》系列题目
  • Vant4+Vue3+Vite开发搭建教程
  • 【Redis】分布式缓存的一系列问题(持久化,主从集群,哨兵,分片集群)
  • 解决Docker容器内yum: not found、apt: not found、apk: command not found等命令找不到问题
  • 开发者工具箱-鸿蒙颜色转换器开发笔记
  • python打卡训练营打卡记录day35
  • 《算法导论(第4版)》阅读笔记:p127-p133
  • C语言 — 内存函数和数据的存储
  • 【Code Agent Benchmark】论文分享No.15:TAU-Bench
  • Windows下编译Zipios
  • 线性回归原理推导与应用(七):逻辑回归原理与公式推导
  • 解决input框被禁用后无法添加点击事件的几个方案
  • 前端大文件上传性能优化实战:分片上传分析与实战
  • 构建Harbor私有镜像库
  • MySQL--day7--聚合函数
  • 【一对一文件重命名】如何按照Excel表格文件名对应的关系,批量一对一的批量改名,一对一关联改名,如何按照映射关系一对一重命名文件夹
  • Serv00 免费邮局 搭建属于自己的域名邮箱 支持 SMTP / Catch-all
  • 电子电路:为什么导体中的电子数量能够始终保持不变?
  • NSSCTF-[羊城杯 2023]程序猿Quby
  • 【通用技巧】技术文章工业级指南:目标定位、架构设计与持续演进
  • PINN高阶技术综合应用:复杂问题求解与神经算子进阶
  • NV123NV134美光闪存颗粒NV139NV143
  • 52页 @《人工智能生命体 新启点》中國龍 原创连载
  • 详细设计文档怎么写?@附参考原件
  • Spring Boot中如何对密码等敏感信息进行脱敏处理
  • 【一. Java基础:注释、变量与数据类型详解】
  • 安卓11 多任务视图270 度的情况报错
  • n 阶矩阵 A 可逆的充分必要条件是 ∣ A ∣ ≠ 0
  • (泛函分析)线性算子谱的定义,谱的分类,谱的性质。
  • 精益数据分析(83/126):从病毒性到营收——创业阶段的关键跨越与商业化策略