POJ 1887 Testing the CATCHER(最长非升子序列)

来源:互联网 发布:善待网络 编辑:程序博客网 时间:2024/06/10 19:38

题目比较长但是方法非常简单,就是求最长非升子序列。直接上代码。。。。

代码:

#include<iostream>#include<algorithm>using namespace std;int dp[5000];int num[5000];const int inf = 0x3f3f3f3f;int main() {    int temp, Case = 0;    int index = 0;    while (cin >> temp, temp != -1) {        num[index++] = temp;        while (cin >> temp, temp != -1) {            num[index++] = temp;        }        memset(dp, 0, sizeof(dp));        int top = 0;        dp[top] = inf;        for (int i = 0; i < index; ++i) {            if (dp[top] >= num[i]) {                dp[++top] = num[i];            }            else {                int low = 1, high = top;                while (low <= high) {                    int mid = (low + high) >> 1;                    if (dp[mid] > num[i]) {                        low = mid + 1;                    }                    else {                        high = mid - 1;                    }                }                dp[low] = num[i];            }        }        cout << "Test #" << ++Case << ":" << endl;        cout << "  maximum possible interceptions: " << top << endl;        cout << endl;        index = 0;    }}

这里写图片描述

#include<iostream>#include<algorithm>using namespace std;int dp[5000];int num[5000];const int inf = 0x3f3f3f3f;int main() {    int temp, Case = 0;    int index = 0;    while (cin >> temp, temp != -1) {        num[index++] = temp;        while (cin >> temp, temp != -1) {            num[index++] = temp;        }        for (int i = 0; i<index; i++)        {            dp[i] = 1;            for (int j = 0; j<i; j++)            {                if (num[j] >= num[i])                    dp[i] = max(dp[i], dp[j] + 1);            }        }        int maxv = 0;        for (int i = 0; i<index; i++)        {            if (dp[i]>maxv)                maxv = dp[i];        }        cout << "Test #" << ++Case <<":"<< endl;        cout << "  maximum possible interceptions: " << maxv << endl;        cout << endl;        index = 0;    }}

这里写图片描述

0 0
原创粉丝点击