HDU 6197 LIS
2017-09-13 14:46
274 查看
简略题意:问把一个长度为n的数组,去除掉k个数,剩下的能不能构成非递增或非递减序列。
换一个角度理解题意就是:问原数组是不是存在长度大于等于n−k的非降或者非增序列。就是很简单的LIS问题了。
换一个角度理解题意就是:问原数组是不是存在长度大于等于n−k的非降或者非增序列。就是很简单的LIS问题了。
#include <bits/stdc++.h> using namespace std; 4000 const int N = 1e5+10; int t, n, k; vector<int> V; namespace LIS{ int dp ; bool solve() { int len = 0; for(int i = 1; i <= n; i++) { int v = V[i]; auto pos = upper_bound(dp+1, dp+1+len, v) - dp; if(pos == len + 1) len++; dp[pos] = v; } return len >= n - k; } } int main() { scanf("%d", &t); while(t--) { scanf("%d%d", &n, &k); V.clear(); V.push_back(0); for(int i = 1; i <= n; i++) { int v; scanf("%d", &v); V.push_back(v); } bool ans = 0; ans |= LIS::solve(); for(int i = 0; i < V.size(); i++) V[i] = -V[i]; ans |= LIS::solve(); puts(ans?"A is a magic array.":"A is not a magic array."); } return 0; }
相关文章推荐
- HDU 6197 array array array 2017沈阳网络赛 LIS
- 【HDU 6197】array array array 【LIS】
- hdu 6197 array array array LIS
- HDU 6197 array array array(LIS)
- hdu 6197 array array array (LIS,最长上升子序列模板题)
- 【HDU】5748 - Bellovin(LIS)
- hdu 5773 The All-purpose Zero (LIS)
- HDU1087 Super Jumping! Jumping! Jumping!(LIS)
- HDU 5489 Removed Interval (LIS变形)
- hdu 1160 FatMouse's Speed ( LIS )
- hdu 4521 小明系列问题——小明序列(lis)
- hdu 2881(LIS变形)
- hdu_5748_Bellovin(LIS)
- hdu-5748 Bellovin(LIS)
- hdu 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列(LIS)O(nlogn)算法)
- HDU - 4521 小明系列问题――小明序列 (LIS&DP)好题
- hdu 4352 XHXJ's LIS 数位DP
- HDU 5532 Almost Sorted Array(LIS讲解+二分)
- HDU 5811 Colosseo(竞赛图+拓普排序+LIS)
- HDU 5087 Revenge of LIS II