hdu多校第九场 1006 (hdu6685) Rikka with Coin 暴力
题意:
有一些1毛,2毛,5毛,1块的钢镚,还有一些价格不同的商品,现在要求你带一些钢镚,以保证这些商品中任选一件都能正好用这些钢镚付账,问最少带多少钢镚。
题解:
对于最优解,1毛的钢镚最多带1个,带两个就还不如带一个2毛的,同理2毛的最多带四个,5毛的最多带1个,一块的没有限制。
因此,预处理出1个1毛,4个2毛,1个5毛的所有子集,它们分别能组成哪些额度。
暴力枚举,并维护最少1块数量即可。
#include<iostream>
#include<set>
#include<map>
using namespace std;
set<int> money[(<<)+];
int count[(<<)+];
int size[(<<)+];
int a[];
inline int bit(int x,int b){
return (x>>b)&;
}
void init(){
//预处理答案
for(int i=;i<(<<);i++){
size[i]=*bit(i,)+*bit(i,)+*bit(i,)+*bit(i,)+*bit(i,)+*bit(i,);
count[i]=bit(i,)+bit(i,)+bit(i,)+bit(i,)+bit(i,)+bit(i,);
}
for(int i=;i<(<<);i++){
for(int j=;j<=i;j++){
if((i&j)==j){
money[i].insert(size[j]);
}
}
}
}
int main(){
int t;
init();
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
int minn=0x3f3f3f3f;//所有钱币组合中最少耗费钱币数
for(int i=;i<(<<);i++){
int maxx=;//对于同一种钱币组合,满足所有价格,所需100元张数
for(int j=;j<=n;j++){
int cc=0x3f3f3f3f;
//对于同一种价格,同一种钱币组合,不同的能支付的钱数,最少需要的额外100元张数
for(set<int>::iterator it=money[i].begin();it!=money[i].end();it++){
// printf("last:%d\n",a[j]-*it);
if((a[j]-*it)%==)cc=min(cc,(a[j]-*it)/);
}
if(cc==0x3f3f3f3f)goto A;
//此解无法满足需求
else maxx=max(maxx,cc);
}
// printf("100:%d other:%d\n",maxx,count[i]);
minn=min(minn,maxx+count[i]);
A:;
}
printf("%d\n",(minn==0x3f3f3f3f)?-:minn);
}
return ;
}
hdu多校第九场 1006 (hdu6685) Rikka with Coin 暴力的更多相关文章
- HDU 4691(多校第九场1006) 后缀数组
...还能多说什么. 眼角一滴翔滑过. 一直以为题意是当前串与所有之前输入的串的LCP...然后就T了一整场. 扫了一眼标程突然发现他只比较输入的串和上一个串? 我心中突然有千万匹草泥马踏过. 然后随 ...
- hdu多校第九场 1002 (hdu6681) Rikka with Cake 树状数组维护区间和/离散化
题意: 在一块长方形蛋糕上切若干刀,每一刀都是从长方形某条边开始,垂直于这条边,但不切到对边,求把长方形切成了多少块. 题解: 块数=交点数+1 因为对于每个交点,唯一且不重复地对应着一块蛋糕. 就是 ...
- hdu多校第九场 1005 (hdu6684) Rikka with Game 博弈
题意: 给一个小写字母组成的字符串,每回合轮到某人时,此人可以选择让某位+1(如果是z则变回a),或者直接结束游戏. 先手希望游戏结束时字符串字典序尽量小,后手希望游戏结束时字符串字典序尽量大,求游戏 ...
- hdu多校第一场 1006 (hdu6583)Typewriter dp/后缀自动机
题意: 有个打字机,在当前字符串后新加一个字花费p,把当前字符串的一个连续子串拷贝到当前字符串的末尾花费q,给定一个字符串,求用打字机打出这个字符串的最小花费. 题解: 容易想到用dp 记dp[i]为 ...
- 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)
咕咕咕了太久 多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...
- 杭电多校第九场 hdu6425 Rikka with Badminton 组合数学 思维
Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/O ...
- Rikka with Game[技巧]----2019 杭电多校第九场:1005
Rikka with Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Othe ...
- 杭电多校第九场 hdu6424 Rikka with Time Complexity 数学
Rikka with Time Complexity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K ( ...
- 杭电多校第九场 HDU6415 Rikka with Nash Equilibrium dp
Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K ...
随机推荐
- 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击
MaxCompute作为阿里巴巴的主力计算平台,在2018年的双11中,再次不负众望,经受住了双11期间海量数据和高并发量的考验.为集团的各条业务线提供了强劲的计算力,不愧是为阿里巴巴历年双11输送超 ...
- bzoj 1095
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1095 首先我必须得感谢yzjc的细心讲解和某岛的题解,如果没有的话我相信我现在还在纠结..不 ...
- 【LeetCode 19】删除链表的倒数第N个节点
题目链接 [题解] 经典的一道题. 让p1指向链表的第一个元素. 让p2指向链表的第二个元素. 然后让他们俩同时往后移动. 直到p2到达链表的尾巴. 这时p1和p2之间总是隔了n-1个元素. 所以p1 ...
- 51nod-1366 贫富差距——并查集
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1366 #include <iostream> # ...
- VMProtect使用小计【二】 – 加壳查看
Release 我这里使用的是Release的版本,Debug的版本分析没有多少的必要,因为程序发布过之后就是Release的,我们先看一下这个文件 原程序分析 使用OD打开VMProtectDemo ...
- 用java打开一个本地文件
以下有三种方式打开 /** * 借助java.awt.Desktop打开 * @see 打开的目录或文件名中允许包含空格 */ private static void useAWTDesktop() ...
- CSS:CSS 图像拼合技术
ylbtech-CSS:CSS 图像拼合技术 1.返回顶部 1. CSS 图像拼合技术 图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图 ...
- 如何上传代码至GitHub
环境准备: git GitHub账号 步骤: 1.登录github创建一个新的项目 参数说明: Repository name: 仓库名称 Description(可选): 仓库描述介绍 Publi ...
- super_blocks没有导出
在模块中,通过查询super_blocks列表,来遍历系统中的所有super_block,但是出现与下面类似的错误: http://stackoverflow.com/q/5051111/941650 ...
- BZOJ 2460 & 洛谷 P4570 [BJWC2011]元素 (线性基 贪心)
题目链接: 洛谷 BZOJ 题意 给定 \(n\) 个矿石,每个矿石有编号和魔力值两种属性,选择一些矿石,使得魔力值最大且编号的异或和不为 0. 思路 线性基 贪心 根据矿石的魔力值从大到小排序. 线 ...