Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
148844 | 林泽豪 | 书架问题1 | C++ | 运行超时 | 93 | 1000 MS | 328 KB | 407 | 2024-05-25 15:02:23 |
#include <bits/stdc++.h> using namespace std; const int N=100040; int n,s,w[N],l[N],f[N]; int Opt(int x,int y) { int width=0,h=0; for(int i=x;i<=y;i++) { width+=w[i]; h=max(l[i],h); } return (width>s?N:h); } int main(){ cin>>n>>s; for(int i=1;i<=n;i++)cin>>w[i]>>l[i]; for(int i=1;i<=n;i++){ f[i]=N; for(int j=0;j<i;j++)f[i]=min(f[i],f[j]+Opt(j+1,i)); } cout<<f[n]; }