竹園論壇

標題: d918 - 6. 雨量趨勢 (99全國賽) [打印本頁]

作者: domen111    時間: 2014-10-16 17:51
標題: d918 - 6. 雨量趨勢 (99全國賽)
DP,O(n^2)
sma7想到的作法(他自己卻寫不出來),我居然沒想出來

最長半遞增子序列 L?IS    (我該怎麼稱呼才對呢? 這篇文章就叫他L?IS好了)
dp[ i ]代表長度為i的L?IS裡面最大的數字(盡量使dp最小)


[C++] 純文本查看 復制代碼
#include<cstdio>
#include<vector>
#include<algorithm>
#define INF 99999999
using namespace std;
int n,m,e;
int a[4000],dp[4000];
int main()
{
        scanf("%d %d",&n,&m);
        for(int i=0;i<n;i++)
                scanf("%d",&a);
        while(m--)
        {
                scanf("%d",&e);
                for(int i=0;i<=n;i++)
                        dp=INF;
                dp[0]=0;
                for(int i=0;i<n;i++)
                {
                        for(int j=i+1;j>=1;j--)
                        {
                                if(dp[j-1]-e<=a)
                                        dp[j]=min(dp[j],max(dp[j-1],a));
                        }
                }
                int ans=0;
                for(int i=0;i<=n;i++)
                        if(dp!=INF)
                                ans=i;
                printf("%d ",ans);
        }
}






歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2