HDU1950LIS裸题

来源:互联网 发布:java 批处理框架 编辑:程序博客网 时间:2024/06/06 09:50

没啥好说的“

#include<iostream>#include<algorithm>#include<string>#include<cstdlib>using namespace std;int zhi[40001];int dp[40001];int len;int main(){    int T;    cin >> T;    while (T--)    {        memset(dp, 0, sizeof(dp));        len = 0;        int n;        cin >> n;        for (int a = 1;a <= n;a++)scanf("%d", &zhi[a]);        for (int a = 1;a <= n;a++)        {            int tou = 1;            int wei = len;            while (tou <= wei)            {                int mid = (tou + wei) / 2;                if (zhi[a] > dp[mid])tou = mid + 1;                else wei = mid - 1;            }            dp[tou] = zhi[a];            if (tou > len)len++;        }        cout <<len<<endl;    }    return 0;}
0 0