问题 K: Tak and Cards

时间限制: 1 Sec   内存限制: 128 MB
提交: 107   解决: 34
[ 提交][ 状态][ 讨论版][命题人: admin]

题目描述

Tak has N cards. On the i-th (1≤i≤N) card is written an integer xi. He is selecting one or more cards from these N cards, so that the average of the integers written on the selected cards is exactly A. In how many ways can he make his selection?

Constraints
1≤N≤50
1≤A≤50
1≤xi≤50
N,A,xi are integers.
Partial Score
200 points will be awarded for passing the test set satisfying 1≤N≤16.

输入

The input is given from Standard Input in the following format:
N A
x1 x2 … xN

输出

Print the number of ways to select cards such that the average of the written integers is exactly A.

样例输入

4 8
7 9 8 9

样例输出

5

提示

The following are the 5 ways to select cards such that the average is 8:
Select the 3-rd card.
Select the 1-st and 2-nd cards.
Select the 1-st and 4-th cards.
Select the 1-st, 2-nd and 3-rd cards.
Select the 1-st, 3-rd and 4-th cards.

题意:给出n个数,从其中至少拿一个,使得平均数为k的拿法有多少种?

题解:dp[i][j]代表拿i个物品和为j的拿法,很明显状态转移方程可以为dp[j][kk]+=dp[j-1][kk-a[i]];必须倒着进行,否则就变成完全背包了。

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<vector>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<deque>
#include<ctype.h>
#include<map>
#include<set>
#include<stack>
#include<string>
#include<algorithm>
#define gcd(a,b) __gcd(a,b)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define FAST_IO ios::sync_with_stdio(false)
#define mem(a,b) memset(a,b,sizeof(a))
const double PI = acos(-1.0);
const double eps = 1e-6;
const int MAX=1e5+10;
const long long INF=0x7FFFFFFFFFFFFFFFLL;
const int inf=0x3f3f3f3f;
const unsigned long long mod=2000000000000000003;
typedef unsigned long long ll;
using namespace std;int a[105];
ll dp[55][3005];
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++)scanf("%d",&a[i]);ll tot=0;dp[0][0]=1;for(int i=1;i<=n;i++){tot+=a[i];for(int j=i;j>=1;j--)for(int kk=tot;kk>=a[i];kk--)dp[j][kk]+=dp[j-1][kk-a[i]];}ll ans=0;for(int i=1;i<=n;i++)ans+=dp[i][i*k];printf("%lld\n",ans);return 0;
}

Tak and Cards(DP,二维背包)相关推荐

  1. HDU 2159 FATE (DP 二维费用背包)

    题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...

  2. HDU-2159 FATE 二维背包

    这题是一个二维背包的题目,刚开始并没有那样去做,只开了一维的空间来存储状态,结果很多的数据都没有跑过去.其实这题这样来问的话可能就明了很多了,求在指定的容忍值和指定的杀怪数下,求最大能够得到了经验数, ...

  3. HDU-2159 FATE 二维背包

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. 杭电2159-FATE (二维背包运用+详细解释)

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. c++ 动态规划-二维背包 and 潜水员问题

    动态规划 - 二维背包 1.普通二维(费用)背包 01背包问题:给定 n 种物品和一个重量(容量)(限定条件)为 w 的背包,物品 i 的重量是 wi,其价值为 vi.(每种物品只有一个)问:如何选择 ...

  6. 【BZOJ3594】方伯伯的玉米田(SCOI2014)-DP+二维树状数组

    测试地址:方伯伯的玉米田 做法:本题需要用到DP+二维树状数组. 首先,我们发现每次拔高的区间都是一个后缀.这个自己画一画就大概能证出来了. 那么我们就有了一个状态定义:令 f(i,j) f ( i ...

  7. dp之二维背包poj1837(天平问题 推荐)

    题意:给你c(2<=c<=20)个挂钩,g(2<=g<=20)个砝码,求在将所有砝码(砝码重1~~25)挂到天平(天平长  -15~~15)上,并使得天平平衡的方法数..... ...

  8. HDU2159 FATE(二维背包、带限制条件的背包问题)

    题目传送门 题意很明显,就不细说了 我们这里可以把剩下的忍耐度看作背包容量,然后价值就是杀了怪所得的经验 用第二维表示杀了q只怪,这样就能用dp[j][q]表示已消耗j点忍耐度,杀了q只怪时的经验值 ...

  9. UVA 10306 e-Coins (二维背包)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

最新文章

  1. OpenCV中CV_IS_MAT_CONT(src->type dst->type) 的含义
  2. Math.random()
  3. restore还原不同名称的数据库_Sql Server 备份还原失败错误ERROR:3145(备份集中的数据库备份与现有的数据库不同)及解决办法...
  4. Struts学习之手动验证
  5. 用递归计算一个数字每一位相加的结果。_leetcode 2 两数相加(c++)
  6. java 基础第一季
  7. MAC修改保存bash_profile文件
  8. java 使用 lamba 表达式处理二维数组
  9. r语言 append_Python爬取近十年TIOBE编程语言热度数据并可视化可视化
  10. FFmpeg基础库编程开发学习笔记——视频常见格式
  11. 我的世界服务器权限组权限修改器,我的世界权限组指令介绍
  12. 推荐几款大家常使用的 SSH 客户端工具
  13. 基于SSM的课设管理小程序源码(课程设计源码)
  14. 如何在腾讯云搭建自己的网站
  15. 学习方法-北大学霸(02)初级技能
  16. c语言 愚人节题目,愚人节整人题目大全
  17. 蜂鸟E203开源RISC-V开发板:蜂鸟FPGA开发板和JTAG调试器介绍
  18. 一位宝石爱好者的零起点建站攻略
  19. 蓝桥杯评分标准_蓝桥杯软件设计大赛自测评分标准
  20. 解决idea上传文件到svn频繁报错 “Error:Node remians in conflict”、“remains in conflict”

热门文章

  1. 好程序员web前端教程分享js中的模块化一
  2. cmi码型变换matlab程序_CMI码形变换实验完整实验报告.doc
  3. docker启动mysql报错
  4. BCELoss和BCEWithLogitsLoss的区别
  5. 五款电动车充电器原理图(重点图2分析过程UC3842的VCC启动电压和稳定供电电压说明,12V由稳压二极管得到做外围电源LM358比较器可被控制输出12V 和0V切换)UC3842电源管理芯片详解
  6. reactJS入门学习
  7. python利用pandas对两张excel表合并(一)
  8. 互联网快讯:QQ音乐推出领养宠物功能;极米高性能投影产品获用户青睐;北京证券交易所正式开市
  9. c语言二次函数拟合,用一个简单2次函数拟合标准正态分布的研究
  10. 【华人学者风采】陈晓峰 西安电子科技大学