hdu 5734 LIS变形
来源:互联网 发布:淘宝女包货源免费代理 编辑:程序博客网 时间:2024/06/05 04:03
分析:
一个数前面有多少个零,就用它来减去这些零数,这样做的目的是尽量多选0,但是压缩当前值.对于两个数,他们的差距减小了,它们之间的0的个数,这不影响先后的值.
去掉所有的零后,再对当前序列求LIS,最后再加上0的个数.
总得来说,这种策略让所有的0的被用到了.
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;#define sa(x) scanf("%d", &(x))#define pr(x) cout << #x << ": " << x#define pl(x) cout << #x << ": " << x << endlstruct jibancanyang{ int A[112345], n, dp[112345]; void fun() { int T; sa(T); for (auto cas = 1; cas <= T; ++cas) { sa(n); int zero = 0; for(int i = 0; i != n; ++i) { sa(A[i]); if (A[i] != 0) A[i] -= zero; else ++zero, --i, --n; } fill(dp, dp + n, static_cast<int>(1e9)); for (int i = 0; i != n; ++i) { *lower_bound(dp, dp + n, A[i]) = A[i]; } printf("Case #%d: %d\n", cas, (lower_bound(dp, dp + n, int(1e9)) - dp + zero)); } }}ac;int main(){#ifdef jibancanyangs freopen("in.txt", "r", stdin);#endif ac.fun(); return 0;}
0 0
- hdu 5734 LIS变形
- hdu 5087(LIS变形)
- hdu 5256 LIS变形
- HDU 5141 LIS Again LIS变形+BIT
- HDU 5773 DP LIS变形
- HDU 1069 Monkey and Banana LIS变形
- hdu 5256 序列变换 (LIS变形)
- hdu 5489 Removed Interval LIS变形
- HDU 5489 Removed Interval (LIS,变形)
- hdu 1069 Monkey and Banana LIS变形
- HDU 1051 Wooden Sticks【LIS变形】
- HDU - 5256 序列变换 【LIS变形】
- hdu 5489 Removed Interval lis变形
- HDU 5125 Magic Balls DP(LIS变形)
- HDU 4521小明序列(变形的LIS)
- hdu 5087 Revenge of LIS II lcs变形
- hdu(1069)——Monkey and Banana(LIS变形)
- hdu 5489 LIS变形(删掉连续区间)
- Retrofit2 完全解析 探索与okhttp之间的关系(二)
- 栈之后缀式求值
- java-基础-hashcode()及其优化
- 设计模式-策略模式
- 哈希表
- hdu 5734 LIS变形
- 关于js中函数的执行顺序
- Qt-单例模式
- poj1113四舍五入的问题
- ListView 与CheckBox 触发事件冲突解决
- 应用开机自启问题排查
- linux中永久显示行号、开启语法高亮
- 【7012】括号的匹配
- malloc()、calloc()和realloc()