博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #323 (Div. 1) B. Once Again... DP
阅读量:4841 次
发布时间:2019-06-11

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

链接:

题意:

给你一个长度为n的序列,复制T次,求最长不下降子序列

题解:

n最大为100,所以我们可以计算出n*n的最长不下降子序列长度,如果T>n,

我们会发现中间一定会有重复的,重复的就是a数组中出现次数最多的数字

代码:

31 int n, T, a[110];32 int dp[10010];33 34 int main() {35     ios::sync_with_stdio(false), cin.tie(0);36     cin >> n >> T;37     map
cnt;38 int Max = 0;39 rep(i, 0, n) {40 cin >> a[i];41 cnt[a[i]]++;42 Max = max(Max, cnt[a[i]]);43 }44 memset(dp, 0x3f, sizeof(dp));45 if (T < 100) {46 VI v;47 rep(i, 0, T) rep(j, 0, n) v.pb(a[j]);48 n *= T;49 rep(i, 0, n) *upper_bound(dp, dp + n, v[i]) = v[i];50 cout << lower_bound(dp, dp + n, INF) - dp << endl;51 }52 else {53 VI v;54 rep(i, 0, 100) rep(j, 0, n) v.pb(a[j]);55 n *= 100;56 rep(i, 0, n) *upper_bound(dp, dp + n, v[i]) = v[i];57 cout << (lower_bound(dp, dp + n, INF) - dp) + Max*(T - 100) << endl;58 }59 return 0;60 }

 

转载于:https://www.cnblogs.com/baocong/p/7305805.html

你可能感兴趣的文章
WPF变换详解
查看>>
flash player 请求本地存储为无限制
查看>>
程序逻辑的组织方式
查看>>
今天正式开通博客
查看>>
javascript逗号添加函数
查看>>
Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana 分块
查看>>
hdu 5452 Minimum Cut 树形dp
查看>>
perf4j @Profiled常用写法
查看>>
配置的热更新
查看>>
ios view的frame和bounds之区别(位置和大小)
查看>>
USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)
查看>>
Luogu 2530 化工厂装箱员
查看>>
自定义webUI实例
查看>>
用NSAttributedString实现简单的图文混排
查看>>
多语境的操作
查看>>
SNS营销——网商成功之道
查看>>
jqgrid 加载时第一页面只显示多少条数据
查看>>
magic模块 :Exception Value:failed to find libmagic. Check your installation
查看>>
C#小游戏(文字对战游戏)
查看>>
COGS2314. [HZOI 2015] Persistable Editor
查看>>