选择困难症

发布时间: 2017年7月4日 12:44   最后更新: 2017年7月4日 12:45   时间限制: 5000ms   内存限制: 128M

描述

GG有严重的选择困难症。

早上起床后,需要花很长时间决定今天穿什么出门。

假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表GG对这件物品的喜欢程度。

GG想知道,有多少种方案,使得选出来的总喜欢值>M

需要注意,每类物品,至多选择1件,可以不选。

输入

多组输入
每组数据第一行输入k M(k<=6,1<=M<=1e8),表示有多少类物品
接下来k行,每行以Ai(1<=Ai<=100)开头,表示这类物品有多少个,接下来Ai个数,第j个为Vj(1<=Vj<=1e8),表示小L对这类物品的第j个的喜欢值是多少

输出

每组输出一行,表示方案数

样例输入1 复制

3 3
2 1 2
2 1 2
2 1 2

样例输出1

10

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define int long long
const int MAX = 1e7+8;
int k,M;
int a[7][107];
int cnt[6];
int arr[MAX];
int brr[MAX];
int cnta = 0;
int cntb = 0;
void dfs(int array[],int& cntp,int step,int end,int sum){if(step == end){array[cntp++] = sum;return ;}for(int i = 0;i <= cnt[step];i++){dfs(array,cntp,step+1,end,sum + a[step][i]);}}
main(){while(scanf("%lld%lld",&k,&M) != EOF){memset(cnt,0,sizeof(cnt));cnta = cntb = 0;for(int i = 0;i < k;i++){scanf("%lld",&cnt[i]);for(int j = 0;j < cnt[i];j++){scanf("%lld",&a[i][j]);}a[i][cnt[i]] = 0;}int mid = k / 2;int last = 0;dfs(arr,cnta,0,mid,0);dfs(brr,cntb,mid,k,0);sort(brr,brr + cntb);int ans = 0;for(int i = 0;i < cnta;i++){ans += brr + cntb - upper_bound(brr,brr + cntb,M - arr[i]);}printf("%lld\n",ans);}return 0;
}

2017西安交大ACM小学期 选择困难症[折半枚举+二分查找]相关推荐

  1. 2017西安交大ACM小学期 刁钻的顾客[3进制+折半枚举]

    刁钻的顾客 发布时间: 2017年7月3日 10:23   时间限制: 3000ms   内存限制: 128M 描述 XJTU校园内新开一家商店,可是来了一位刁钻的顾客要购买商品A和商品B.关于商品的 ...

  2. 2017西安交大ACM小学期 敏感词汇[AC自动机]

    敏感词汇 发布时间: 2017年7月5日 00:23   最后更新: 2017年7月6日 14:40   时间限制: 1500ms   内存限制: 128M 描述 我们知道,在进行聊天时,有些词汇是敏 ...

  3. 2017西安交大ACM小学期 刷墙[折半枚举+异或]

    刷墙 发布时间: 2017年7月3日 12:17   最后更新: 2017年7月6日 22:29   时间限制: 3000ms   内存限制: 128M 描述 小明有一面黑白混搭的墙,他想给把墙重新粉 ...

  4. 2017西安交大ACM小学期数论 [更新学号]

    发布时间: 2017年6月24日 20:27   最后更新: 2017年7月3日 09:27   时间限制: 3000ms   内存限制: 128M 描述 某知名高校有n个学生,每个学生有一个唯一ID ...

  5. 2017西安交大ACM小学期数论 [水题]

    水题 发布时间: 2017年6月25日 14:06   最后更新: 2017年7月3日 09:27   时间限制: 1000ms   内存限制: 128M 描述 平均因数个数的统计对于估算数论题目复杂 ...

  6. 2017西安交大ACM小学期 美妙音乐[差分KMP匹配]

    美妙音乐 发布时间: 2017年7月3日 13:14   最后更新: 2017年7月5日 13:47   时间限制: 500ms   内存限制: 128M 描述 一段音乐是由若干个音符组成的,音乐中的 ...

  7. 2017西安交大ACM小学期 有趣异或[Trie树]

    有趣异或 发布时间: 2017年7月4日 23:59   最后更新: 2017年7月5日 14:56   时间限制: 1500ms   内存限制: 512M 描述 给定n个非负整数,保证这些数两两不相 ...

  8. 2017西安交大ACM小学期 文本查找[AC自动机]

    文本查找 发布时间: 2017年7月5日 00:10   最后更新: 2017年7月5日 13:47   时间限制: 1500ms   内存限制: 128M 描述 给定m种两两不同的关键词,并给定一段 ...

  9. 2017西安交大ACM小学期 神器插座 KMP匹配

    神奇插座 发布时间: 2017年7月3日 11:27   最后更新: 2017年7月5日 13:46   时间限制: 500ms   内存限制: 128M 描述 AA所在的国家有一项神奇的发明:插座. ...

最新文章

  1. 基尼不纯度简介 - Gini Impurity
  2. 基于iscsi实现文件存储共享
  3. Consul 服务注册与发现01——简介|| 安装并运行Consul
  4. matlab灰色关联代码,灰色关联分析matlab代码
  5. MyEclipse下Struts2配置使用和Ajax、JSON的配合
  6. 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
  7. 【五级流水线CPU】—— 1. 初始框架搭建
  8. java ajax 进度条_java使用ajax实现进度条
  9. Aria2 - OS X 下载百度云资源神器
  10. Mcafee杀毒软件卸载不了
  11. Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
  12. Java io流详解四
  13. excel加密的两种实现方式
  14. [个人资料整理]游戏类型总结
  15. h5+MUI移动APP和普通H5之间的区别有哪些?
  16. 新黑马头条项目经验(黑马)
  17. {经典演讲}庞加莱关于数学发现的心理学的演讲
  18. 程旭:CPU方寸上的中国信念 --转载
  19. 上拉电阻的作用与计算
  20. 红石外汇|每日分享:随着焦点转移到本周关键数据上,空头控制了局面

热门文章

  1. bcm943602cs蓝牙用不了_原来手机的蓝牙功能这么强大!除了连接耳机,还有这六大实用功能...
  2. 机器学习之格式变化——reshape(-1,1)
  3. 算法设计与分析——动态规划——矩阵连乘问题
  4. MATLAB函数gensurf,MATLAB模糊逻辑工具箱函数.ppt
  5. [Java基础]ListIterator
  6. [剑指offer]面试题13:在O(1)时间删除链表结点
  7. mysql数据库check命令_利用mysqlcheck命令快速修复mysql数据库
  8. caffe安装常见问题
  9. D:Ehab the Xorcist
  10. [2020多校A层11.22]party(概率期望/近似)