当前位置:网站首页>ACM模板笔记:最长不下降/上升子序列
ACM模板笔记:最长不下降/上升子序列
2022-08-10 20:51:00 【Dhaa_Ryan】
淦宁佬,能拿到蓝桥杯省二就算成功:(,ACM拿锤子奖,我这说唱专业的说唱学生百分百白给,是这样的
这只是我个人的备忘录,没有详细的注解,想了解原理的请去找其他的贴子 ,如果你能看得懂就将就看:P
求最长不上升子序列
-1s算法
int maxr = 0;
for (int i = counter; i >= 1; i--) {
dp[i] = 1;
for (int j = i + 1; j <= counter; j++) {
if (datas[j] <= datas[i]) {
dp[i] = max(dp[i], dp[j] + 1);
}
}
maxr = max(maxr, dp[i]);
}
cout << maxr << endl;

nlogn算法
d1[1] = a[1];
for (int i = 2; i <= n; i++) {
if (d1[len1] >= a[i])
d1[++len1] = a[i];
else {
int p1 = upper_bound(d1 + 1, d1 + 1 + len1, a[i], greater<int>()) - d1;
d1[p1] = a[i];
}
}


求最长不下降子序列
-1s算法
int ans2 = 0;
for (int i = 1; i <= counter; i++) {
dp2[i] = 1;
for (int j = 1; j < i; j++) {
if (datas[j] < datas[i])
dp2[i] = max(dp2[i], dp2[j] + 1);
}
ans2 = max(ans2, dp2[i]);
}
cout << ans2;

nlogn算法
d2[1] = a[1];
for (int i = 2; i <= n; i++) {
if (d2[len2] < a[i]) d2[++len2] = a[i];
else {
int p2 = lower_bound(d2 + 1, d2 + 1 + len2, a[i]) - d2;
d2[p2] = a[i];
}
}
这玩意也可以离散化(来自洛谷)
int n,a[100005];
int ans,ma,c[100005],b[100005],r[100005];
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],c[a[i]]=i;
for(int i=1;i<=n;i++){
int x;
cin>>x;
b[i]=c[x];//这里做离散化
}
//然后就用普通的n^2
int maxr = 0;
for (int i = n; i >= 1; i--) {
r[i] = 1;
for (int j = i + 1; j <= n; j++) {
if (b[j] <= b[i]) {
r[i] = max(r[i], r[j] + 1);
}
}
maxr = max(maxr, r[i]);
}
cout << maxr << endl;
cout<<ans;
return 0;
}
边栏推荐
- C 语言 时间函数使用技巧(汇总)
- 深度学习实战教程(一):感知器
- 机器学习模型验证:被低估的重要一环
- Getting started with kuberentes Auditing
- 指针常量和常量指针
- 大小端的理解以及宏定义实现的理解
- [Golang]从0到1写一个web服务(上)
- Kubernetes Notes / Getting Started / Production Environment / Installing Kubernetes with Deployment Tools / Starting a Cluster with kubeadm / Creating a Cluster with kubeadm
- 三子棋的设计和代码
- C语言系列——猜名次、猜凶手、打印杨辉三角
猜你喜欢
随机推荐
石油化工行业商业供应链管理系统:标准化供应商管理,优化企业供应链采购流程
【网络通信四】ping工具源码cmake工程编译以及运行说明
MySQL数据库的主从复制部署详解
.NET现代应用的产品设计 - DDD实践
C. Social Distance
C. Rotation Matching
【CMU博士论文】视频多模态学习:探索模型和任务复杂性,152页pdf
leetcode:45. 跳跃游戏II
Floating window in Auto.js
Uniapp编译后小程序的代码反编译一些思路
B. Codeforces Subsequences
工程师应该怎么学习
mysql性能监控与执行计划
Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme | Palladium Nanozyme | GMP-Pd Nanozyme | Gold-Palladium Composite Nanozyme | Ternary Metal Pd-M-Ir Nanozyme |shell nanozyme
apr_thread使用内存之谜
第14届全国大学生信息安全竞赛-创新实践能力赛
Apache DolphinScheduler 3.0.0 正式版发布!
Single-click to cancel the function
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
电信保温杯笔记——《统计学习方法(第二版)——李航》第17章 潜在语义分析









