• poj 1836


    最长递增子序列的变种,计算两次即可

     1 #include <iostream>
     2 #include <string>
     3 #include <vector>
     4 #include <cstdlib>
     5 #include <cmath>
     6 #include <map>
     7 #include <algorithm>
     8 #include <list>
     9 #include <ctime>
    10 #include <set>
    11 #include <cstring>
    12 #include <queue>
    13 #include <cstdio>
    14 #define CLR(arr, what) memset(arr, what, sizeof(arr))
    15 const int MAX = 100005;
    16 const int maxc = 1500;
    17 using namespace std;
    18 void get_inc(vector<double>& data, vector<int>& res) {
    19     int sz = data.size();
    20     int j;
    21     vector<double> cur(maxc, -1);
    22     for (int i = 0; i < sz; i++) {
    23         for (j = 0; j < i + 1; j++) {
    24             if (cur[j] == -1 || (cur[j] >= data[i])) {
    25                 cur[j] = data[i];
    26                 res[i] = j;
    27                 break;
    28             }
    29         }
    30     }
    31 }
    32 int main() {
    33     int n;
    34     double t;
    35     while (scanf("%d", &n) != EOF) {
    36         vector<double> data;
    37         for (int i = 0; i < n; i++) {
    38             cin >> t;
    39             data.push_back(t);
    40         }
    41         vector<int> incc(n, 0);
    42         vector<int> decc(n, 0);
    43         get_inc(data, incc);
    44         reverse(data.begin(), data.end());
    45         get_inc(data, decc);
    46         reverse(decc.begin(), decc.end());
    47         int res = 10000;
    48         for (int i = 0; i < n; i++) {
    49             int t = decc[i] + incc[i] + 1;
    50             res = min(res, n - t);
    51             for (int j = i + 1; j < n; j++) {
    52                 t = decc[j] + incc[i] + 2;
    53                 res = min(n - t, res);
    54             }
    55         }
    56         cout << res << endl;
    57     }
    58     return 0;
    59 }

    from kakamilan

  • 相关阅读:
    Shell与if相关参数
    Linux盘符漂移问题
    shell脚本,每5个字符之间插入"|",行末不插入“|”
    paste:linux合并两个文件中的列(左右合并)
    关于bc 的scale .
    RxJS与观察者模式
    什么是虚拟DOM
    JS设计模式
    JS自定义事件
    原生js实现拖拽功能
  • 原文地址:https://www.cnblogs.com/kakamilan/p/3125114.html
Copyright © 2020-2023  润新知