码迷,mamicode.com
首页 > 其他好文 > 详细

2015安徽省赛 F.多重部分和问题

时间:2015-07-31 17:48:42      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

有n种不同大小的数字,每种各个。判断是否可以从这些数字之中选出若干使它们的和恰好为K。

输入

首先是一个正整数T(1<=T<=100) 接下来是T组数据 每组数据第一行是一个正整数n(1<=n<=100),表示有n种不同大小的数字 第二行是n个不同大小的正整数ai(1<=ai<=100000) 第三行是n个正整数mi(1<=mi<=100000),表示每种数字有mi个 第四行是一个正整数K(1<=K<=100000)

输出

对于每组数据,如果能从这些数字中选出若干使它们的和恰好为K,则输出“Yes”,否则输出“No”,每个输出单独占一行

样例输入

2
3
3 5 8 3 2 2
17
2
1 2 1 1
4

样例输出

Yes
No

dp数组
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 using namespace std;
 5 int dp[100001],a[100001],m[100001];
 6 int n,k,T;
 7 int dper()
 8 {
 9     memset(dp,-1,sizeof(dp));
10     dp[0]=0;
11     for(int i=0;i<n;i++)
12     {
13         for(int j=0;j<=k;j++)
14         {
15             if(dp[j]>=0)
16             {
17                 dp[j]=m[i];
18             }
19             else if(j<a[i]||dp[j-a[i]]<=0)
20             {
21                 dp[j]=-1;
22             }
23             else
24             {
25                 dp[j]=dp[j-a[i]]-1;
26             }
27         }
28     }
29     if(dp[k]>=0){printf("Yes\n");}
30     else printf("No\n");
31     return 0;
32 }
33 int main()
34 {
35     scanf("%d",&T); 
36     while(T>=1)
37     {
38         scanf("%d",&n);
39         for(int i=0;i<n;i++)
40         {
41             scanf("%d",&a[i]);
42         }
43         for(int i=0;i<n;i++)
44         {
45             scanf("%d",&m[i]);
46         }
47         scanf("%d",&k);
48         dper();
49         T--;
50         n=0;k=0;
51         memset(a,0,sizeof(a));
52         memset(m,0,sizeof(m));
53     }
54     return 0;
55 }
56 /**************************************************************
57     Problem: 1210
58     User: 2014217052
59     Language: C++
60     Result: 正确
61     Time:128 ms
62     Memory:2676 kb
63 ****************************************************************/
64  

 

2015安徽省赛 F.多重部分和问题

标签:

原文地址:http://www.cnblogs.com/dzzy/p/4692694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!