其他分享
首页 > 其他分享> > DP 刷题

DP 刷题

作者:互联网

开始刷 \(DP\) 题了, 因为搜索练完了, qwq
这应该很痛苦吧, 囤了好多题单, 从大多是橙题, 黄题, 到全是蓝题紫题

那就开动了 !

1 - P1049 [NOIP2001 普及组] 装箱问题

原题链接

https://www.luogu.com.cn/problem/P1049

思路

背包问题经典

蒟蒻代码

#include <bits/stdc++.h>
#define re register
#define rep(i,a,b) for(re int i=a;i<=b;i++)
#define per(i,a,b) for(re int i=a;i>=b;i--)
using namespace std;

const int V=2e4+5;
const int N=35;

int n,m;
int v[N];
int f[V];

int main()
{
    ios::sync_with_stdio(0);
    clock_t c1 = clock();
#ifdef LOCAL
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
#endif
// ======================================================================
    cin>>m>>n;
    rep(i,1,n) cin>>v[i];

    rep(i,1,n)
        per(j,m,v[i])
            f[j]=max(f[j],f[j-v[i]]+v[i]);

    cout<<m-f[m];

// ======================================================================
end:
    cerr << "Time Used:" << clock() - c1 << "ms" << endl;
    return 0;
}

标签:const,clock,int,rep,re,DP,刷题
来源: https://www.cnblogs.com/syqwq/p/16217164.html