zoukankan      html  css  js  c++  java
  • 橱窗布置

    【题目链接】

        http://ybt.ssoier.cn:8088/problem_show.php?pid=1279

    【算法】

        状态转移方程和复制书稿几乎一样,注意dp时候状态的范围保证每束花都有花瓶插。我是用rec记录的,当然也可以逆着推出位置。

    【代码】

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int f,v,i,j,k,first=1;
     4 int a[110][110],dp[110][110],rec[110][110];
     5 int main()
     6 {
     7     scanf("%d%d",&f,&v);
     8     for(i=1;i<=f;i++)
     9         for(j=1;j<=v;j++)
    10             scanf("%d",&a[i][j]);
    11     rec[1][1]=1,dp[1][1]=a[1][1];
    12     for(i=2;i<=v-(f-1);i++) if(dp[1][i-1]<a[1][i]) rec[1][i]=i,dp[1][i]=a[1][i]; else rec[1][i]=rec[1][i-1],dp[1][i]=dp[1][i-1];
    13     for(i=2;i<=f;i++)
    14         for(j=i;j<=v-f+i;j++)
    15             for(k=i-1;k<=j-1;k++) {
    16                 int cur=dp[i-1][k]+a[i][k+1];
    17                 if(cur>dp[i][j]) rec[i][j]=k+1,dp[i][j]=cur;
    18             }
    19     printf("%d
    ",dp[f][v]);
    20     stack<int> s;
    21     for(i=f,j=v;i;i--) {
    22         s.push(rec[i][j]);
    23         j=rec[i][j]-1;
    24     }
    25     while(!s.empty()) {
    26         if(first) printf("%d",s.top()),first=0;
    27         else printf(" %d",s.top());
    28         s.pop();
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    20170519
    20170515
    20170511
    20170509
    20170505
    使用 FirewallD 构建动态防火墙
    Elasticsearch 5.2.1Cluster 搭建
    elk,centos7,filebeat,elasticsearch-head详细安装步骤
    elk,centos7,filebeat,elasticsearch-head集成搭建
    memcached
  • 原文地址:https://www.cnblogs.com/Willendless/p/9388034.html
Copyright © 2011-2022 走看看