zoukankan      html  css  js  c++  java
  • 刷表法动态规划:HOJ11391_Word Clouds Revisited

    题目大意,给若干方块,让把方块拍成若干行,使得最终高度最小。其中,每行有宽度限制,高度为每行中最高的箱子的高度。

    于是,很直观的认为,这个题可能也许大概应该是个动态规划的题。

    于是,设DP[K]为K及K以后的所有箱子组成的集合,以K为开头的最小值。

    于是可以对这个状态进行状态转移,最终输出DP[0]为答案。

    AC代码如下:

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<vector>
    #include<string.h>
    #include<string>
    #include<set>
    #include<queue>
    #include<map>
    #include<algorithm>
    
    using namespace std;
    const long long MAXN=5233;
    const long long INF=1e9+233;
    
    long long dp[MAXN];
    pair<long long ,long long> p[MAXN];
    long long n,c;
    
    
    void init()
    {
        cin>>n>>c;
        for(int i=0;i<n;++i)
        {
            cin>>p[i].second>>p[i].first;
            dp[i]=0;
        }
        for(int i=n-1;i>=0;--i)
        {
            dp[i]=INF;long long ans=0;
            long long wid=0;
            for(int j=i;j<n;++j)
            {
                    if(wid+p[j].second<=c)
                    {
                        ans=max(ans,p[j].first);
                        dp[i]=min(ans+dp[j+1],dp[i]);
                        wid+=p[j].second;
                    }else break;
            }
        }    
        cout<<dp[0]<<endl;
    }
    
    
    
    int main()
    {
        cin.sync_with_stdio(false);
        init();
        
        return 0;
    }
  • 相关阅读:
    touch测试
    JS动画代码
    前端css、javascript在线工具
    横向广告(商品)滚动
    写点js的小函数(一)
    HTML5 css reset
    JS新API标准 地理定位(navigator.geolocation)
    写点js的小函数(二、文本框的提示)
    传说中的comet(ajax版)?
    lhgdialog 4.2.0 正式版发布
  • 原文地址:https://www.cnblogs.com/rikka/p/7495758.html
Copyright © 2011-2022 走看看