序列变换(Lis变形)
序列变换
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1200 Accepted Submission(s): 448
每一组数据:
第一行输入一个N(1≤N≤105),表示数列的长度
第二行输入N个数A1,A2,...,An。
每一个数列中的元素都是正整数而且不超过106。
Case #i:
然后输出最少需要修改多少个元素。
题解:
改变系列使成为单调递增子序列;那么只需要dp[i]-dp[j]>=i-j就好了;再加上单调递增子序列的求法;
dp[i]-dp[j]>=i-j即为dp[i]-i>=dp[j]-j;
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> using namespace std; const int MAXN = 1e5 + 100; int num[MAXN]; int dp[MAXN]; vector<int>vec; /* int main(){int T, N, kase = 0;scanf("%d", &T);while(T--){vec.clear();scanf("%d", &N);for(int i = 0; i < N; i++){scanf("%d", num + i);num[i] -= i;if(upper_bound(vec.begin(), vec.end(), num[i]) == vec.end()){vec.push_back(num[i]);}else{int p = upper_bound(vec.begin(), vec.end(), num[i]) - vec.begin();vec[p] = num[i];}}printf("Case #%d:\n%d\n", ++kase, N - vec.size());}return 0; } */int main(){int T, N, kase = 0;scanf("%d", &T);while(T--){scanf("%d", &N);memset(dp, 0, sizeof(dp));int ans = 0;for(int i = 0; i < N; i++){scanf("%d", num + i);for(int j = 0; j < i; j++){if(num[i] - num[j] >= i - j){dp[i] = dp[j] + 1;ans = max(ans, dp[i]);}}}printf("Case #%d:\n%d\n", ++kase, N - ans - 1);}return 0; }
序列变换(Lis变形)相关推荐
- hdu 5256 序列变换 (LIS变形)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 1715: 序列变换(LIS变形)
1715: 序列变换 时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 我们有一个数列A1,A2-An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无 ...
- 杭电5256 序列变换(LIS)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 百度之星1005 序列变换(lis)
序列变换 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_show ...
- UVA 1471 Defense Lines (LIS变形)
题意:删除原序列中的一段连续子序列,使得剩下的序列中存在一段最长连续子序列. 题解:LIS变形 我们用l[i]l[i]l[i]和r[i]r[i]r[i]记录往右以iii结尾和往左以iii开头的最长连续 ...
- 二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换
题目传送门 1 /* 2 二分搜索:在0-1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c 3 比赛时以为是贪心,榨干智商也 ...
- 豪斯荷尔德变换及变形QR算法对矩阵进行奇异值分解VB算法
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- hdu5256序列变换(非递减子序列)
题意(中文直接粘吧) 序列变换 Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无论是修改前还是修改后,每个 ...
- hdu5248序列变换(二分+贪心)基础题
题意(中文的直接粘题意吧) ...
最新文章
- Facebook参与AI芯片设计大混战!
- JavaScript执行环境及作用域(一)——执行环境栈和作用域链机制
- 上海交大发布「人类行为理解引擎」:深度学习+符号推理,AI逐帧理解大片中每个动作...
- oracle 强制恢复,oracle数据库恢复
- java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...
- Haproxy实现负载均衡
- SQL STUFF用法很有趣的语法
- 部署Zipkin分布式性能追踪日志系统的操作记录
- 谁有《线性系统理论习题与解答》郑大钟
- VsCode开发Flutter 连接夜神模拟器
- macbook M1 brew install失败
- 西北工业大学软件学院大数据技术实验(二)
- Python-波斯日历转换(日期转换)
- 前端高效开发必备——常用js框架和第三方插件
- pygame设计舒尔特方格游戏python舒尔特方格小程序
- 必应壁纸爬取 def
- BWA mem序列比对时出现:paired reads have different names 问题解决
- Docker-设置redis容器主从模式哨兵模式
- 电脑解压文件丢失怎么找回来?四种恢复方法
- 深度学习基础--SOFTMAX回归(单层神经网络)
热门文章
- Spring MVC RedirectAttributes的用法解决办法
- 对团队建设与管理的几点看法
- 全局组、域本地组、通用组到底有什么区别?它们之间的关系如何?
- 团队组建阶段,项目经理要做些什么?
- 折腾 | pytoch、cuda版本问题
- bee 字符串转int_Beego在views中格式化显示时间(int64转string)
- linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
- java swftools linux_swftools linux下安装
- springboot基本属性注入
- Redis删除副本节点