2017西安交大ACM小学期 选择困难症[折半枚举+二分查找]
选择困难症
发布时间: 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个的喜欢值是多少
每组输出一行,表示方案数
3 3 2 1 2 2 1 2 2 1 2
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小学期 选择困难症[折半枚举+二分查找]相关推荐
- 2017西安交大ACM小学期 刁钻的顾客[3进制+折半枚举]
刁钻的顾客 发布时间: 2017年7月3日 10:23 时间限制: 3000ms 内存限制: 128M 描述 XJTU校园内新开一家商店,可是来了一位刁钻的顾客要购买商品A和商品B.关于商品的 ...
- 2017西安交大ACM小学期 敏感词汇[AC自动机]
敏感词汇 发布时间: 2017年7月5日 00:23 最后更新: 2017年7月6日 14:40 时间限制: 1500ms 内存限制: 128M 描述 我们知道,在进行聊天时,有些词汇是敏 ...
- 2017西安交大ACM小学期 刷墙[折半枚举+异或]
刷墙 发布时间: 2017年7月3日 12:17 最后更新: 2017年7月6日 22:29 时间限制: 3000ms 内存限制: 128M 描述 小明有一面黑白混搭的墙,他想给把墙重新粉 ...
- 2017西安交大ACM小学期数论 [更新学号]
发布时间: 2017年6月24日 20:27 最后更新: 2017年7月3日 09:27 时间限制: 3000ms 内存限制: 128M 描述 某知名高校有n个学生,每个学生有一个唯一ID ...
- 2017西安交大ACM小学期数论 [水题]
水题 发布时间: 2017年6月25日 14:06 最后更新: 2017年7月3日 09:27 时间限制: 1000ms 内存限制: 128M 描述 平均因数个数的统计对于估算数论题目复杂 ...
- 2017西安交大ACM小学期 美妙音乐[差分KMP匹配]
美妙音乐 发布时间: 2017年7月3日 13:14 最后更新: 2017年7月5日 13:47 时间限制: 500ms 内存限制: 128M 描述 一段音乐是由若干个音符组成的,音乐中的 ...
- 2017西安交大ACM小学期 有趣异或[Trie树]
有趣异或 发布时间: 2017年7月4日 23:59 最后更新: 2017年7月5日 14:56 时间限制: 1500ms 内存限制: 512M 描述 给定n个非负整数,保证这些数两两不相 ...
- 2017西安交大ACM小学期 文本查找[AC自动机]
文本查找 发布时间: 2017年7月5日 00:10 最后更新: 2017年7月5日 13:47 时间限制: 1500ms 内存限制: 128M 描述 给定m种两两不同的关键词,并给定一段 ...
- 2017西安交大ACM小学期 神器插座 KMP匹配
神奇插座 发布时间: 2017年7月3日 11:27 最后更新: 2017年7月5日 13:46 时间限制: 500ms 内存限制: 128M 描述 AA所在的国家有一项神奇的发明:插座. ...
最新文章
- 基尼不纯度简介 - Gini Impurity
- 基于iscsi实现文件存储共享
- Consul 服务注册与发现01——简介|| 安装并运行Consul
- matlab灰色关联代码,灰色关联分析matlab代码
- MyEclipse下Struts2配置使用和Ajax、JSON的配合
- 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
- 【五级流水线CPU】—— 1. 初始框架搭建
- java ajax 进度条_java使用ajax实现进度条
- Aria2 - OS X 下载百度云资源神器
- Mcafee杀毒软件卸载不了
- Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
- Java io流详解四
- excel加密的两种实现方式
- [个人资料整理]游戏类型总结
- h5+MUI移动APP和普通H5之间的区别有哪些?
- 新黑马头条项目经验(黑马)
- {经典演讲}庞加莱关于数学发现的心理学的演讲
- 程旭:CPU方寸上的中国信念 --转载
- 上拉电阻的作用与计算
- 红石外汇|每日分享:随着焦点转移到本周关键数据上,空头控制了局面
热门文章
- bcm943602cs蓝牙用不了_原来手机的蓝牙功能这么强大!除了连接耳机,还有这六大实用功能...
- 机器学习之格式变化——reshape(-1,1)
- 算法设计与分析——动态规划——矩阵连乘问题
- MATLAB函数gensurf,MATLAB模糊逻辑工具箱函数.ppt
- [Java基础]ListIterator
- [剑指offer]面试题13:在O(1)时间删除链表结点
- mysql数据库check命令_利用mysqlcheck命令快速修复mysql数据库
- caffe安装常见问题
- D:Ehab the Xorcist
- [2020多校A层11.22]party(概率期望/近似)