博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[pat]1045 Favorite Color Stripe
阅读量:6473 次
发布时间:2019-06-23

本文共 1120 字,大约阅读时间需要 3 分钟。

1.用一个数组里面存储喜爱数字的值来区分数字是不是喜爱,以及值的大小顺序,用vector循环删除a数组中不是喜爱的元素,这里it=erase()之后it自动指向下一个元素,由于循环每次还要自增1,所以要加上it--。

2.然后就是写dp来寻找最长的序列,序列可以不是连续的,也就是并不是所有的喜爱数字都要选取。

#include 
using namespace std;int main(){ int n; scanf("%d", &n); vector
p(n+1, -1); int m; int i; scanf("%d", &m); for (i = 0; i < m; i++) { int k; scanf("%d", &k); p[k] = i; } int l; scanf("%d", &l); vector
a(l, -1); for (i = 0; i < l; i++) { scanf("%d", &a[i]); } vector
::iterator it = a.begin(); for (; it != a.end(); it++) { if (p[*it]<0) { it=a.erase(it);//erase()删除的用法. it--; } } vector
dp(a.size(), 1); int j; int ans = -1; for (i = 0; i < a.size(); i++) { for (j = 0; j < i; j++) { if (p[a[i]]>=p[a[j]] && dp[j]+1>dp[i]) dp[i] = dp[j] + 1; } ans = max(ans, dp[i]); } printf("%d\n", ans);}

 

转载于:https://www.cnblogs.com/legendcong/p/9192593.html

你可能感兴趣的文章
第一次冲刺--查看活动详情用户场景分析
查看>>
0317复利计算的回顾与总结
查看>>
函数对象
查看>>
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q70-Q72)
查看>>
最全最新个税计算公式---今天你税了吗?
查看>>
linux shell 正则表达式(BREs,EREs,PREs)差异比较(转,当作资料查)
查看>>
MongoDB--CSharp Driver Quickstart .
查看>>
#pragma mark 添加分割线 及 其它类似标记 - 转
查看>>
遗传算法实现自动组卷、随机抽题 (转)
查看>>
二分法求平方根(Python实现)
查看>>
使用startActivityForResult方法(转)
查看>>
so在genymotation中错误问题
查看>>
Visual Studio 原生开发的10个调试技巧(二)
查看>>
Windows内核再次出现0Day漏洞 影响win2000到win10所有版本 反病毒软件恐成瞎子
查看>>
5G重塑网络 构建新生态下的大互联
查看>>
H3C品牌刀片系统强势首发
查看>>
江门交警与高德地图战略合作引导市民智慧出行
查看>>
重构数字世界的“马奇诺”新边界防御如何起死回生?
查看>>
Adobe携手上海视觉艺术学院 开展多项人才培养计划
查看>>
WSUS MITM远程攻击实战全过程详解
查看>>