inflate.cpp
来自「dd牛的usaco源代码!对学习算法」· C++ 代码 · 共 45 行
CPP
45 行
/*
ID: dd.ener1
PROG: inflate
LANG: C++
*/
#include <cstdio>
#include <cstring>
using namespace std;
const long maxn=10010;
long M,N;
long v[maxn];
long t[maxn];
long best[maxn];
void input(){
freopen("inflate.in","r",stdin);
scanf("%d%d",&M,&N);
for(long i=0;i<N;++i)
scanf("%d%d",v+i,t+i);
memset(best,0,sizeof(best));
}
inline void update(long& old,const long& updater){
if(updater>old)old=updater;
}
void solve(){
for(long k=0;k<N;++k)
for(long i=0;;++i){
if(i+t[k]>M)break;
update(best[i+t[k]],best[i]+v[k]);
}
}
void output(){
long max=-1;
for(long i=0;i<=M;++i)
update(max,best[i]);
freopen("inflate.out","w",stdout);
printf("%d\n",max);
}
int main(){
input();
solve();
output();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?