ACM Word Clouds Revisited 题解
来源:互联网 发布:淘宝固本安宫止血汤 编辑:程序博客网 时间:2024/06/03 19:07
DP题,先打一个从i 到 j 的maxh 的表book【i】【j】, 再用一维DP。 注意 5000*5000的数组开不下, 但可以开一半(i<=j), 用vector 。
好吧,其实没必要这么复杂。。。。
一位大佬:直接DP就可以了
我: 好像是这样。。。
对, 开出来的book【i】【j】中的值都只用了一遍, 就没有打表的意义了, 直接在DP中求, 还可以简化。
#include<bits/stdc++.h>using namespace std;vector<int> book[5005];int main(){int n,c,i,j,k,maxh,sumw;int w[5005],h[5005],dp[5005];for(i=0;i<5005;i++){book[i].clear();j=5005-i;book[i].resize(j);}while(cin>>n>>c){for(i=0;i<5005;i++){j=5005-i;for(k=0;k<j;k++){book[i][k]=-1;}}for(i=0; i<=n;i++)dp[i] = 99999999;for(i=1; i<=n; i++){cin>>w[i]>>h[i];}for(i=1; i<=n; i++){maxh = 0;sumw = 0;for(j=i; j<=n; j++){sumw += w[j];if(sumw > c) break;maxh = max(maxh, h[j]);book[i][j-i] = maxh;}}dp[0] = 0;for(i=1; i<=n; i++){for(j=i-1; j>=0; j--){if(book[j+1][i-j-1] == -1) break;dp[i] = min(dp[i], dp[j]+book[j+1][i-j-1]);}}cout<<dp[n]<<endl;}}
阅读全文
0 0
- ACM Word Clouds Revisited 题解
- Clouds
- ACM题解
- concatenate clouds
- LeetCode题解:Word Search
- Word Ladder|leetcode题解
- LeetCode题解:Word Ladder
- LeetCode题解:Word Break
- Word Search 题解
- Word Search II 题解
- LeetCode题解:Word Pattern
- acm题解总结(1)
- Bupt ACM题解 NO1
- Bupt ACM题解 NO2
- Acm 第二次计蒜客杯题解
- CQUOJ 15273 ACM题解
- ACM Dance Recital 题解
- zoj acm Word Reversal
- jQuery系列之自定义动画(四)
- PLSQL 查询结果出现中文乱码解决方案
- shutil模块和os模块对比
- fopen访问远程文件
- 刷清橙OJ--A1067.Fibonacci数列整除问题
- ACM Word Clouds Revisited 题解
- Coderforces Nearly Lucky Number
- 315. Count of Smaller Numbers After Self
- jquery操作对象
- SQL中的where条件,在数据库中提取与应用浅析
- 1046. 划拳(15)
- Eclipse中写jsp文件时,发现里面加载不了js文件和css文件(解决css文件在eclipse中显示不了)
- 图像处理之图像的边缘、轮廓检测
- python使用tesseract-ocr完成验证码识别