zoukankan      html  css  js  c++  java
  • BZOJ 1489: [HNOI2009]双递增序( dp )

    dp(i, j)表示选第i个, 且当前序列长度为j, 另一个序列的最后一个元素的最小值...然后根据上一个是哪个序列选的讨论一下就行了...奇怪的dp... 

    -------------------------------------------------------------

    #include<cstring>
    #include<cstdio>
    #include<algorithm>
     
    using namespace std;
     
    const int INF = 0X3F3F3F3F;
    const int maxn = 2009;
     
    int dp[maxn][maxn], seq[maxn], N;
     
    int main() {
    int T;
    scanf("%d", &T);
    while(T--) {
    scanf("%d", &N);
    for(int i = 1; i <= N; i++) scanf("%d", seq + i);
    seq[0] = -1;
    memset(dp, INF, sizeof dp);
    dp[0][0] = -1;
    for(int i = 1; i <= N; i++)
    for(int j = 0; j <= i; j++) {
    if(dp[i - 1][i - j] < seq[i]) dp[i][j] = seq[i - 1];
    if(seq[i - 1] < seq[i]) 
    dp[i][j] = min(dp[i][j], dp[i - 1][j]);
    }
    puts(dp[N][N / 2] != INF ? "Yes!" : "No!");
    }
    return 0;
    }

    ------------------------------------------------------------- 

  • 相关阅读:
    Admin注册和路由分发详解
    自定义Xadmin
    苑昊老师的博客
    pip 国内源 配置
    Django模型层(2)
    Django 中间件
    Django form表单
    整理的最全 python常见面试题(基本必考)
    AJAX
    Cookie、Session和自定义分页
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/5010989.html
Copyright © 2011-2022 走看看