P5020-货币系统【背包】
正题
题目链接:https://www.luogu.com.cn/problem/P5020
题目大意
定义S(A)S(A)S(A)表示集合AAA内的若干个数字和(可以重复使用)可以表示的集合
nnn个数的集合FFF,求一个最小的集合G⊆FG\subseteq FG⊆F且S(F)=S(G)S(F)=S(G)S(F)=S(G)。
解题思路
对于一个数字a∈Fa\in Fa∈F如果a∈S(F)a\in S(F)a∈S(F)那么显然a∉Ga\notin Ga∈/G。
对于一个数字a∉Fa\notin Fa∈/F那么a∉Ga\notin Ga∈/G。因为如果a∉S(F)a\notin S(F)a∈/S(F)那么aaa一定不能在GGG,如果a∈S(F)a\in S(F)a∈S(F)且a∉Fa\notin Fa∈/F那么FFF中一定有更小的数能表示出aaa,而这些数也需要在S(G)S(G)S(G)中所以这个aaa是一定不需要选的。
所以背包即可,时间复杂度O(Tn∗max{ai})O(Tn*max\{a_i\})O(Tn∗max{ai})
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int T,n,ans,a[110],f[30000];
int main()
{scanf("%d",&T);while(T--){scanf("%d",&n);ans=0;for(int i=1;i<=n;i++)scanf("%d",&a[i]);memset(f,0,sizeof(f));sort(a+1,a+1+n);f[0]=1;for(int i=1;i<=n;i++){if(!f[a[i]])ans++;for(int j=a[i];j<=a[n];j++)f[j]|=f[j-a[i]];}printf("%d\n",ans);}
}
P5020-货币系统【背包】相关推荐
- 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵
洛谷 P5020货币系统 https://www.luogu.com.cn/problem/P5020 思路是把货币从小到大排序,然后按顺序依次完全背包dp,每次dp检查i-1种面值的货币能不能凑出第 ...
- CSP 2021考前每日2题(10-2)洛谷 P5020 货币系统 + USACO2021铜组 Uddered but not Herd
文章目录 P5020 [NOIP2018 提高组] 货币系统 USACO : Uddered but not Herd P5020 [NOIP2018 提高组] 货币系统 #include <c ...
- USACO 2.3 货币系统(背包/生成函数)
Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],他们对货币的数值感到好奇. 传统地,一个货币系统是由 ...
- 洛谷—P5020 货币系统(背包问题)
这道题目一开始没想到是个背包问题,后来想到了但是没有优化TL了,原因还是没有深刻理解填表法的过程. 80分代码: #include<bits/stdc++.h> using namespa ...
- [完全背包] 货币系统(完全背包+求方案数)
文章目录 0. 前言 1. 完全背包+求方案数+思维 0. 前言 相关: [背包] 背包问题算法模板(模板) 强相关: [完全背包] 买书(完全背包+裸题) [完全背包] 货币系统(完全背包+求方案数 ...
- 洛谷P1474 [USACO 2.3]货币系统 Money Systems [2017年4月计划 动态规划04]
P1474 货币系统 Money Systems 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1 ...
- 牛客网【每日一题】5月27日题目精讲 货币系统
链接: 文章目录 题目描述 题解: 代码: 题目描述 在网友的国度中共有n种不同面额的货币,第i种货币的面额为a[i],你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为n.面额数组为a[1 ...
- DP学习之USACO货币系统
Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],,他们对货币的数值感到好奇. 传统地,一个货币系 ...
- [NC21228]货币系统
题解:若存在一个货币系统的简化拥有与原货币系统不同的货币,先讨论只多出一种货币的情况,假设多出来的是A,那么x*A必然可以被原货币系统表示(x表示大素数),也就是说原货币系统中必然有A的约数B,添加A ...
- Codeup-问题 C: 货币系统
题目描述 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],,他们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10 ...
最新文章
- 模糊综合评价法用什么软件实现_基于建管养一体化模式的钢桥面铺装方案综合评价分析...
- SAP Spartacus cypress集成测试执行失败的一些常见原因
- Java IO: 字节和字符数组
- PHP、C#、通用的DES加密
- 电脑表格制作教程入门_第三节 CorelDRAW制作作品的流程 - CorelDRAW基础入门教程 - 平面设计学院...
- matlab在电力系统潮流计算程序,大神们,求个电力系统潮流计算的matlab程序。
- java struts2国际化代码下载_【Java框架】java struts2框架中页面表示国际化的方法 - 思诚科技...
- C# 序列化技术详解《转》
- Jsp页面用table表格来让文字和文本框对齐
- 2021四川高考成绩位次查询,2021年四川高考位次查询及一分一段表排名查询
- 喵哈哈村与哗啦啦村的大战(四)(树形DP)
- USBCAN分析仪的配套CAN和CANFD综合测试软件LKMaster软件解决工程师CAN总线测试难题
- adams做动态静力学分析(牛头刨床为例)机械原理课设(完整)
- 硬盘坏了怎么修复 教你如何修复硬盘坏道
- win10熄屏时间不对_win10系统屏幕熄屏时间的设置方法
- 无限级分销管理系统的设计与实现
- java ee jpi是什么,“JPI”是“Java Plug In”的缩写,意思是“Java插件”
- ImageDraw类详解:几何图形的绘制与文字的绘制
- 见缝插针小程序php,抖音小程序怎么开通
- 艾美捷游离维多珠单抗ADA水平检测试剂盒,高灵敏度检测
热门文章
- json 格式化工具_如何在命令行中优雅地处理JSON
- python 小甲鱼 代码_Python小代码
- css-6 df15,webpack 样式文件的代码分割(15)
- python的文件操作os_python文件、文件夹操作OS模块
- mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串
- shapenet网络_GRNet网络:3D网格进行点云卷积,实现点云补全
- python数据分析numpy_(转)Python数据分析之numpy学习
- 西门子触摸屏脚本程序_通过驿唐PLC501远程下载Smart Line触摸屏
- [C++11]final关键字的使用
- 带权中位数-算法导论第三版第九章思考题9-2