【SSL】2128可可摘蘋果
【SSL】2128可可摘蘋果
Time Limit:1000MS
Memory Limit:128000K
Description
摩爾莊園有一條小徑,沿著小徑有n棵蘋果樹,從左到右編號為1、2、3、…、n。你現在有h小時的空餘時間,希望用這些時間儘可能多的摘到更多的蘋果。你從蘋果樹1出發,向前走,有選擇地在一些蘋果樹旁停留一定的時間用來摘蘋果,最後在某一棵蘋果樹旁結束工作。你現在已經測出從第i到第i+1棵蘋果樹需要走5*Ti分鐘,同時還測出在第i棵蘋果樹旁停留,第一個5分鐘可以摘到Fi只蘋果,以後的每個5分鐘,所摘到的蘋果數量減少Di。
Input
第一行兩個數n,h 表示一共有n棵蘋果樹,總有有h個小時的空閒時間。
第二行共有n-1個數,含義為題目中說的Ti。
第三行共有n個數,含義為題目中說的Fi。
第四行共有n個數,含義為題目中說的Di。
Output
輸出僅一行,最優方案下可以總共可以摘多少隻蘋果。
Sample Input
2 1
10
50 100
50 50
Sample Output
150
Hint
【資料範圍】
h<=24
n<=1000
ti,fi,di<=maxint
思路
這是一道分組揹包。
設f[i][j]表示前i棵樹花費j時間總共可以摘多少隻蘋果。
f[i][j]=f[i-1][j-t[i]]
f[i][j]=max(f[i][j],f[i][j-k]+在第i棵樹停留5k分鐘摘到的蘋果)
1<=i<=n;
1<=j<=h12
1<=k<=j
最後找最大值。
程式碼
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int t[1010],s[1010],d[1010],f[1010][1010];
int main()
{
int i,j,k,n,h,ans=0,ds,ss;
memset(f,-0x7f,sizeof(f));
scanf("%d%d",&n,&h);
f[0][0]=0;
h*=12;
for(t[1]=0,i=2;i<=n;i++)
scanf("%d",&t[i]);
for(i=1;i<=n;i++)
scanf("%d",&d[i]);
for(i=1;i<=n;i++)
scanf("%d",&s[i]);
for(i=1;i<=n;i++)
{
for(j=h;j>=t[i];j--)
f[i][j]=f[i-1][j-t[i]];
for(j=h;j>=0;j--)
{
ds=d[i];
ss=d[i];
for(k=1;k<=j;k++)
{
f[i][j]=max(f[i][j],f[i][j-k]+ds);//狀態轉移方程
ss-=s[i];
ds+=ss;
}
}
for(j=0;j<=h;j++)
ans=max(ans,f[i][j]);
}
printf("%d",ans);
return 0;
}
相關文章
- 陶陶摘蘋果蘋果
- SSL 1637——蘋果蘋果
- 伺服器配置ssl證書支援蘋果ATS方法 – HTTPS SSL 教程伺服器蘋果HTTP
- 0828-T4 聰聰與可可
- 10 個機器學習教程彙總,愛可可推薦!機器學習
- 摘果果
- gotofail:蘋果 SSL/TLS 重大安全漏洞的細節GoAI蘋果TLS
- vnc配置--摘VNC
- 《黑客英雄》書摘黑客
- 【摘錄】index(一)Index
- [摘]JDBC筆記JDBC筆記
- markdown使用摘記
- 蘋果釋出 OS X Mavericks 10.9.2,修復 SSL 安全漏洞蘋果
- kafka ssl sasl_ssl 配置Kafka
- SDUTOJ 2128 樹結構練習——排序二叉樹的中序遍歷排序二叉樹
- progit摘錄筆記Git筆記
- RabbitMQ簡介(摘選)MQ
- 面試準備摘記面試
- <摘錄>GCC 中文手GC
- 物件導向(摘錄)物件
- 【摘】 oracle優化器Oracle優化
- SAP BI工作摘錄
- 儲存概述_轉摘
- 《IT大敗局》摘記
- 知:孫子兵法摘錄
- ssl
- 重磅 | 深度學習“四大名著”釋出!愛可可推薦!深度學習
- 一家專注可可愛愛的佛系遊戲工作室——套鹿遊戲
- 番茄工作法摘錄
- 【精通比特幣】摘記比特幣
- AliSQL X-Cluster(摘選)SQL
- 讀書筆記摘錄:筆記
- statspack報告分析摘錄
- web service相關轉摘Web
- 轉摘_raid概論AI
- Infiniband簡介_轉摘
- linux iscsi配置網摘Linux
- linux 登陸bash --摘Linux