2985:数字组合(示例代码)

2020-09-26

栏目: Web ·

简介  这篇文章主要介绍了2985:数字组合(示例代码)以及相关的经验技巧,文章约4858字,浏览量219,点赞数7,值得推荐!

2985:数字组合

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述
有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如:
n=5,5个数分别为1,2,3,4,5,t=5;
那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。
输入
输入的第一行是两个正整数n和t,用空格隔开,其中1<=n<=20,表示正整数的个数,t为要求的和(1<=t<=1000)
接下来的一行是n个正整数,用空格隔开。
输出
和为t的不同的组合方式的数目。
样例输入
5 5
1 2 3 4 5
样例输出
3


关键字:01背包,逆序
 1 //*************************************
 2 //7-1   PAx: 620终端
 3 // Name: 2728:摘花生
 4 // Solut:  D.P.
 5 //************************************
 6 #include "stdafx.h"
 7 #include<bits/stdc++.h>
 8 #define N 21
 9 using namespace std;
10 int n, k;
11 int a[N],f[N*N*N];
12 int main()
13 {
14     scanf("%d%d", &n,&k);
15     for (int i = 1; i <= n; i++)
16     {
17         scanf("%d", &a[i]);
18     }
19     f[0] = 1;
20     for (int i = 1; i <= n; i++)
21     {
22         for (int j = k; j >= a[i]; j--)
23         {
24             f[j] += f[j - a[i]];
25         }
26     }
27     printf("%d\n", f[k]);
28     return 0;
29 }

 


以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文地址:http://www.cnblogs.com/InfoEoR/p/7105514.html

相关文章

openjudge dp水题记录(示例代码)

poj2985(示例代码)

hdu 2985 The k-th Largest Group 树状数组求第K大(示例代码)

POJ2985 并查集+线段树 求第k大的数

POJ2985 The k-th Largest Group(示例代码)

POJ2985 The k-th Largest Group[树状数组求第k大值 并查集]

POJ--2985 The k-th Largest Group(第K大组,带权并查集+树状数组+二分)(示例代码)

POJ--2985 The k-th Largest Group(第K大组,带权并查集+树状数组+二分)(示例代码)