动态规划·题型归纳
Posted phemiku
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划·题型归纳相关的知识,希望对你有一定的参考价值。
背包
1.填满型01背包
倒序枚举避开后效性
题目描述
【题意】
有n根木棍(0≤n≤30),从中选若干根使得它们的 长度和s 最接近v(正整数,0≤v≤20000),且s<=v。
【输入格式】
一个整数v,一个整数n。接下来n个整数,分别表示这n根木棍的长度。
【输出格式】
一个整数,表示v-s。
【样例输入】
24
6
8 3 12 7 9 7
【样例输出】
0
#include<bits/stdc++.h> using namespace std; int a[350],v,n; bool f[20000]; int main() cin>>v>>n; for(int i=1;i<=n;i++)cin>>a[i]; f[0]=1; for(int i=1;i<=n;i++) for(int j=v;j>=a[i];j--) if(!f[j])f[j]=f[j-a[i]]; int x=v; while(!f[x])x--; cout<<v-x; return 0;
以上是关于动态规划·题型归纳的主要内容,如果未能解决你的问题,请参考以下文章