Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
148848 | 梁煜然 | 书架问题1 | C++ | 运行超时 | 93 | 1000 MS | 388 KB | 536 | 2024-05-25 15:02:48 |
#include<bits/stdc++.h> using namespace std; const int MAX=0x3f3f3f3f; const int M=1e5+5; int w[M],l[M],f[M],sum[M]; int sw; int Opt(int L,int R){ int W=0,h=0; for(int i=L;i<=R;i++){ h=max(l[i],h); } return sum[R]-sum[L-1]>sw ? MAX : h; } int main(){ int n; scanf("%d%d",&n,&sw); for(int i=1;i<=n;i++){ scanf("%d%d",&w[i],&l[i]); sum[i]=sum[i-1]+w[i]; } for(int i=1;i<=n;i++){ f[i]=MAX; for(int j=i-1;j>=0;j--){ f[i]=min(f[i],f[j]+Opt(j+1,i)); } } cout<<f[n]<<endl; return 0; }