Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
153002 吴悠 书架问题1 C++ 通过 100 3 MS 772 KB 583 2024-06-28 13:36:41

Tests(32/32):


#include<iostream> #include<cstring> using namespace std; int w[100001],h[100001],dp[100001],sum[100001]; int main(){ int n,s; cin>>n>>s; for(int i=1;i<=n;i++){ cin>>w[i]>>h[i]; sum[i]=sum[i-1]+w[i]; } memset(dp,63,sizeof(dp)); dp[0]=0; for(int i=1;i<=n;i++){ int max_=0; for(int j=i;;j--){ if(sum[i]-sum[j-1]>s || j<1){ break; } max_=max(max_,h[j]); dp[i]=min(dp[i],dp[j-1]+max_); } } cout<<dp[n]<<endl; return 0; }


测评信息: