hdu 5256 LIS变形
给一个数列,问最少修改多少个元素使数列严格递增。如果不是要求“严格”递增,那就是求最长不降子序列LIS,然后n-LIS就是答案。要严格递增也好办,输入的时候用每个数减去其下标处理一下就行了。
/** Author : ben*/ #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <iostream> #include <algorithm> #include <queue> #include <set> #include <map> #include <stack> #include <string> #include <vector> #include <deque> #include <list> #include <functional> #include <numeric> #include <cctype> using namespace std; const int MAXN = 100010; int a[MAXN]; vector<int> v; int work() {int n;scanf("%d", &n);v.clear();vector<int>::iterator it;for (int i = 0; i < n; i++) {scanf("%d", &a[i]);a[i] = a[i] - (i + 1); //每一个数减去其所在位置的序号 }v.push_back(a[0]);for (int i = 1; i < n; i++) {if (a[i] >= *(v.end() - 1)) {v.push_back(a[i]);} else {it = upper_bound(v.begin(), v.end(), a[i]);*(it) = a[i];}}return n - v.size(); } int main() {int T;scanf("%d", &T);for (int t = 1; t <= T; t++) {printf("Case #%d:\n%d\n", t, work());}return 0; }
转载于:https://www.cnblogs.com/moonbay/p/4542512.html
hdu 5256 LIS变形相关推荐
- hdu 5087(LIS变形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5087 解题思路:这道题其实仔细想想很简单,次长LIS只有两种可能,一种就是等于LIS-1,一种就是LI ...
- UVA 1471 Defense Lines (LIS变形)
题意:删除原序列中的一段连续子序列,使得剩下的序列中存在一段最长连续子序列. 题解:LIS变形 我们用l[i]l[i]l[i]和r[i]r[i]r[i]记录往右以iii结尾和往左以iii开头的最长连续 ...
- hdu 5256 序列变换 (LIS变形)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu(1069)——Monkey and Banana(LIS变形)
题意: 如今给你n个石块,然后它由坐标来表示(x,y,z).可是它能够有不同的方法,也就是说它的三个坐标能够轮换着来的. 石块的数量不限,可是每次都必须保持上底面的长和宽严格递减,然后问你用这些石块所 ...
- UVA 1471 Defense Lines 防线 (LIS变形)
给一个长度为n的序列,要求删除一个连续子序列,使剩下的序列有一个长度最大的连续递增子序列. 最简单的想法是枚举起点j和终点i,然后数一数,分别向前或向后能延伸的最长长度,记为g(i)和f(i).可以先 ...
- hdu 5410(背包问题变形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5410 解题思路:令dp[i][j][0]表示前i种物品,共j钱,不买第i种物品所能买到的最大值.dp[ ...
- hdu 1598(最小生成树变形)
解题思路:这道题我一开始的思路是动规,dp_max[i][j]表示i-j的最大边,dp_min[i][j]表示i-j的最小边,可是这样会有问题,有可能最大边与最小边不在同一条路径上,这样就很麻烦了. ...
- HDU 1114(没有变形的完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000 MS (Java/Others ...
- 1715: 序列变换(LIS变形)
1715: 序列变换 时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 我们有一个数列A1,A2-An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无 ...
最新文章
- 半监督目标检测相关方法总结
- 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序
- 线性最小二乘问题求解的豪斯荷尔德法C实现
- 基于STM32的DS1302时钟芯片驱动
- python中transpose函数_对numpy中的transpose和swapaxes函数详解
- 远去的背影与落日以及一对蒙古年轻夫妻
- cocos 时间函数需要什么引用_与时间赛跑:微盟的数据恢复为什么需要这么长时间...
- jsp页面科学计数法显示问题的解决办法
- MFC初步教程(二)
- Oracle日期函数和转换函数
- 中国移动MM,你需要了解
- 一种辅助整理WoS英文论文题录文档的方法(python-docx)
- html5 放风筝,北京最全的放风筝5大最佳地点,地广人稀,不用花钱
- day03 python基础
- python抢红包 无需电脑_Python助你秒抢红包,拼手速?不存在!
- mysql gone away的几种原因
- vim简单用法-配合pycharm
- DBG、DMB、DSB 和 ISB
- TCP的拥塞避免、超时重传、快速重传、快速恢复
- SEO外链策略之链接诱饵的制作需知
热门文章
- 成都(10月24日时代广场)Windows 7社区发布活动
- 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- ----移动端移动端调试神器vConsole----
- (转)Windows7 “上帝模式”的原理
- 51单片机定时器实现LED闪烁
- 使用B::Deparse模块对perl代码反汇编
- maven 简易入门笔记
- http协议常见的响应头
- href=#与href=javascriptvoid(0)的区别
- Novodex2.6.2 布料系统