首页 > 代码库 > (寒假集训)Mooo Moo (完全背包)
(寒假集训)Mooo Moo (完全背包)
Mooo Moo
时间限制: 1 Sec 内存限制: 64 MB
提交: 5 解决: 4
[提交][状态][讨论版]
题目描述
Farmer
John has completely forgotten how many cows he owns! He is too
embarrassed to go to his fields to count the cows, since he doesn‘t want
the cows to realize his mental lapse. Instead, he decides to count his
cows secretly by planting
microphones in the fields in which his cows tend to gather, figuring
that he can determine the number of cows from the total volume of all
the mooing he hears.
FJ‘s N fields (1 <= N <= 100) are all arranged in a line along a long straight road. Each field might contain several types of cows; FJ owns cows that come from B different breeds (1 <= B <= 20), and a cow of breed i moos at a volume of V(i) (1 <= V(i) <= 100). Moreover, there is a strong wind blowing down the road, which carries the sound of mooing in one direction from left to right: if the volume of mooing in some field is X, then in the next field this will contribute X-1 to the total mooing volume (and X-2 in the field after that, etc.). Otherwise stated, the mooing volume in a field is the sum of the contribution due to cows in that field, plus X-1, where X is the total mooing volume in the preceding field.
Given the volume of mooing that FJ records in each field, please compute the minimum possible number of cows FJ might own.
The volume FJ records in any field is at most 100,000.
FJ‘s N fields (1 <= N <= 100) are all arranged in a line along a long straight road. Each field might contain several types of cows; FJ owns cows that come from B different breeds (1 <= B <= 20), and a cow of breed i moos at a volume of V(i) (1 <= V(i) <= 100). Moreover, there is a strong wind blowing down the road, which carries the sound of mooing in one direction from left to right: if the volume of mooing in some field is X, then in the next field this will contribute X-1 to the total mooing volume (and X-2 in the field after that, etc.). Otherwise stated, the mooing volume in a field is the sum of the contribution due to cows in that field, plus X-1, where X is the total mooing volume in the preceding field.
Given the volume of mooing that FJ records in each field, please compute the minimum possible number of cows FJ might own.
The volume FJ records in any field is at most 100,000.
输入
* Line 1: The integers N and B.
* Lines 2..1+B: Line i+1 contains the integer V(i).
* Lines 2+B..1+B+N: Line 1+B+i contains the total volume of all mooing in field i.
* Lines 2..1+B: Line i+1 contains the integer V(i).
* Lines 2+B..1+B+N: Line 1+B+i contains the total volume of all mooing in field i.
输出
* Line 1: The minimum number of cows owned by FJ, or -1 if there is no configuration of cows consistent with the input.
样例输入
5 2
5
7
0
17
16
20
19
样例输出
4
提示
FJ owns 5 fields, with mooing volumes 0,17,16,20,19. There are two breeds of cows; the first moos at a volume of 5, and the other at a volume of 7.There are 2 cows of breed #1 and 1 cow of breed #2 in field 2, and there is
another cow of breed #1 in field 4.
【分析】由题意知,每一个区域的声音大小除了自身外 只受上一个区域有关,减去上一个区域的影响后,就只剩下自己本身产生的声音,求最少的牛的数目,就是完全背包了。
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <string> #include <map> #include <stack> #include <queue> #include <vector> #define inf 0x3f3f3f3f #define met(a,b) memset(a,b,sizeof a) #define pb push_back typedef long long ll; using namespace std; const int N = 1e3; const int M = 24005; int n,m,k,maxn=0,ans=0; int mx=-1; int v[N],a[N],b[N],dp[N*N]; int main() { scanf("%d%d",&n,&k); for(int i=1;i<=k;i++)scanf("%d",&v[i]); for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++){ b[i]=a[i]-max(a[i-1]-1,0); mx=max(mx,b[i]); } for(int i=1;i<=mx;i++)dp[i]=inf; for(int i=1;i<=k;i++){ for(int j=v[i];j<=mx;j++){ if(dp[j-v[i]]!=inf)dp[j]=min(dp[j],dp[j-v[i]]+1); } } for(int i=1;i<=n;i++){ if(dp[b[i]]==inf){ printf("-1\n"); return 0; } ans+=dp[b[i]]; } printf("%d\n",ans); return 0; }
(寒假集训)Mooo Moo (完全背包)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。