高橋君とカード / Tak and Cards

高橋君とカード / Tak and Cards



Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB

Score : 300 points

Problem Statement

Tak has N cards. On the i-th (1≤iN) 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.

Input

The input is given from Standard Input in the following format:

N A
x1 x2  xN

Output

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


Sample Input 1

4 8
7 9 8 9

Sample Output 1

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.

分析:二维背包;

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define mod 1000000000
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
#define pii pair<int,int>
#define Lson L, mid, rt<<1
#define Rson mid+1, R, rt<<1|1
const int maxn=1e5+10;
using namespace std;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
int n,m,k,t;
ll dp[51][2501];
int a,now;
ll ans;
int main()
{
    int i,j;
    dp[0][0]=1;
    scanf("%d%d",&n,&a);
    rep(i,1,n)
    {
        scanf("%d",&k);
        now+=k;
        for(j=i;j>=1;j--)
            for(t=now;t>=k;t--)
                dp[j][t]+=dp[j-1][t-k];
    }
    rep(i,1,n)ans+=dp[i][a*i];
    printf("%lld\n",ans);
    //system("Pause");
    return 0;
}
时间: 2024-10-27 01:42:32

高橋君とカード / Tak and Cards的相关文章

高橋君とホテル / Tak and Hotels

高橋君とホテル / Tak and Hotels Time limit : 3sec / Stack limit : 256MB / Memory limit : 256MB Score : 700 points Problem Statement N hotels are located on a straight line. The coordinate of the i-th hotel (1≤i≤N) is xi. Tak the traveler has the following t

AtCoder-arc060 (题解)

A - 高橋君とカード / Tak and Cards (DP) 题目链接 题目大意: 有 \(n\) 个数字,要求取出一些数字,使得它们的平均数恰好为 \(x\) ,问有几种取法. 大致思路: 只要将每一个数字减掉 \(x\) ,那么问题就变成在 \(n\) 个数字中选取一些数字使得和为 \(0\) 的方案数,是一个经典的 \(dp\) 问题,不过要注意细节问题 代码: #include<bits/stdc++.h> #define ll long long using namespace

csp退役前的做题计划1(真)

csp退役前的做题计划1(真) 因为我太菜了,所以在第一次月考就会退役,还是记录一下每天做了什么题目吧. 任务计划 [ ] Z算法(Z Algorithm) 9.28 [x] ARC061C たくさんの数式 / Many Formulas [x] ARC061D すぬけ君の塗り絵 / Snuke's Coloring [x] ARC061E すぬけ君の地下鉄旅行 / Snuke's Subway Trip [x] ARC061F 3人でカードゲーム / Card Game for Three [

日本常用姓氏表收集

Abe 阿部.安部.安倍.阿倍. Abei 安倍井. Abigo 安孫子. Abigo 安孫子.安彥.吾孫子. Abiru 安蒜.阿比留. Abo 安保.阿保. Abumiya 鐙家. Aburai 油井. Aburatani 油谷. Aburaya 油谷. Acha 阿茶. Adachi 足立.安達.安立.足達.阿達. Adegawa 阿出川. Aeba 饗庭. Afuso 安富祖. Agata 縣.懸. Agatainukai 縣犬養. Agatsuma 我妻. Agawa 阿川. Agei

2015 12

新浪微博:@晓东日语 欢迎关注,超多日语学习资料在微博@晓东日语 2015 年 12 月 N1 级真题 日语 N1 词汇真题(2015 年 12 月) 問題 1_の言葉の読み方として最もよいものを.1?2?3?4から一つ選びなさい. 1決勝の素晴らしい試合に観客は興奮した. 1こうふん 2きょうふん 3 きょうぶん 4こうぶん 2この説は.鈴木氏が 30 年前に初めて唱えた. 1たたえた 2となえた 3かなえた 4うったえた 3この地域における主要な産業の変遷について調べた 1へんさん 2へんさ

2016 12

新浪微博:@晓东日语 整理 敬请关注,超多日语学习资料在微博@晓东日语 2016年12月日本語能力試験N1試験問題 言葉知識(文字?語彙?文法)?読解 (105分) 問題 1 ___の言葉の読み方として最もよいものを. 1?2?3?4 から一つ選びなさい. 1 社会活動に参加することで. 人脈を広げることができた. ① じんみゃく ② じんまく ③ にんみゃく ④ にんまく 2.鈴木さんは指摘がいつも的確で.本当に賢い人だと思う. 1 するどい 2 かしこい 3 すごい 4 えらい 文化の違いが

第二十七课

第一单元语法部分        Vて行く Vて来る「行く.来る」有方向性.以某物为参照物.接在「Vて」形式后面,表示完成V动作后进行方向性移动.     Vていく    ①表示移动时的状态.“…着去,…去”        例:学校まで走っていこう.    ②表示远离说话人而去.         例:船はどんどん遠くに離れていった.    ③表示做完某动作行为再去.“…了再去”        例:母の誕生日だから.途中で花を買って行きました.    ④以某一时间为基准,变化或动作继续下去.“…下去

【HAPPY FOREST】用Unreal Engine4绘制实时CG影像

用Unreal Engine绘制实时CG影像 近年来,对实时CG的关心热度越来越高,但要想弥补与预渲染方式的差异并不是那么容易.这里就有影像业界的先锋进行挑战的MARZA ANIMATION PLANET.本文中通过Demo Movie的制作,来看看实时CG的可能性. 对应现状的问题意识与先见之明相结合的实验性项目 近年来的实时CG的品质的提升特别显著,最新的影像出现使得CG影像的相关人员兴奋起来,不光是影像的美丽程度,还感到了这种技术的可能性.这次介绍的MARZA ANIMATION PLAN

第二十三课

第二十三课第一单元语法部分 Vておく<提前>:预先…… 口语形式:-とく 说明:   A.表示为后面要做的事情事先做好某种准备. B.表示采取某种行为,并使其结果的状态持续下去.   C.有时表示一种临时的措施. 例句:     1 日本へ行く前に日本語を習っておくつもりだ.    2 電気は消さないで 練習: 1.事先打个电话问一.朝までつけておこう.    3 その場で一応の手当てをしておいて.病院へ連れていった.下比较好 2.预先磨好刀. Vてある<客体存续的状态>: 说明: