动态规划·题型归纳

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;

 

以上是关于动态规划·题型归纳的主要内容,如果未能解决你的问题,请参考以下文章

动态规划经典题型

动态规划多种题型

动态规划题型

各题型归纳总结

各题型归纳总结

各题型归纳总结