日常训练2025-1-13

news/2025/1/13 10:12:58/文章来源:https://www.cnblogs.com/califeee/p/18668051

日常训练2025-1-13

P5020 [NOIP2018 提高组] 货币系统

rating:普及+/提高

https://www.luogu.com.cn/problem/P5020

思路

思考一下题目要干什么,原来的货币系统能够表示出一个集合,不能表示出一个集合,现在把货币数量减少之后能表示的集合和不能表示的集合不变——意味着原本的货币系统中有一些货币的存在是不影响表示出的集合的。

那么他们为什么没作用呢?假设能表示出来的货币为 x ,那么 \(x = na_i + ma_j\),如果这里的 \(a_j = ka_i\),也就是说\(a_j\)本身就能被 \(a_i\) 表示,那么 \(a_j\)​ 就是不需要存在的。所以本题就是让我们找哪些货币是能被原本有的货币表示出来的,这些货币需要被删掉。

假设现在要看最大的货币能否被表示,那么小的货币有选与不选两种可能,所以考虑背包。因为大的货币都是被小的货币表示,所以先排个序。

\(f[i][j]\)​:使用前 i 个货币能否表示 j 这个面额,那么 j 的最大值应该为数组中的最大值,对应最大背包容量。

状态转移:\(f[i][j] |= f[i-1][j]\),如果$ j - v[i] >= 0\(,\)f[i][j] |= f[i-1][j-v[i]]$​

最后,如果第 i 个货币 $f[i-1][v[i]] $存在,那么就应该被删除

代码

#include <bits/stdc++.h>typedef std::pair<long long, long long> pll;
typedef std::pair<int, int> pii;
#define INF 0x3f3f3f3f
#define MOD 998244353
using i64 = long long;
const int N = 1e5+5;void solve(){int n;std::cin >> n;std::vector<int> v(n+1);for (int i = 1; i <= n; i++) std::cin >> v[i];std::sort(v.begin(), v.end());int V = v[n];std::vector f(n+1, std::vector<int>(V+1, 0));f[0][0] = 1;for (int i = 1; i <= n; i++){for (int j = 0; j <= V; j++){f[i][j] |= f[i-1][j];if (j >= v[i]) f[i][j] |= f[i][j-v[i]];}}int ans = n;for (int i = 1; i <= n; i++){if (f[i-1][v[i]]) ans -= 1;}std::cout << ans << '\n';
}signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2);int t = 1, i;std::cin >> t;for (i = 0; i < t; i++){solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/868611.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零知识证明二(椭圆曲线配对)

本文章将V神关于椭圆曲线配对的文章进行了翻译。原文在此: https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627 1 简介 椭圆曲线配对是各种构造背后的关键密码原型之一,包括确定性阈值签名、zk-SNARKs和其他更简单形式的零知识证明。椭圆曲…

数字化工具助力外贸客户粘性提升

在全球化市场竞争日益激烈的背景下,外贸企业要想在红海中脱颖而出,必须深耕客户体验,提供精细化服务,增强客户粘性。只有以客户为中心,创新服务模式,才能在长期合作中实现双赢。 第一部分:客户粘性的价值与挑战 1. 客户粘性的核心价值 客户粘性是企业持续盈利和长期发展…

测试项目管理系统 - TPA

面对当今汽车行业高速迭代的研发节奏,测试业务的复杂性和高标准使得传统的手动管理方式面临巨大挑战。汽车测试涵盖多种类型,经纬恒润基于多年测试管理经验,推出了测试项目管理系统INTEWORK-TPA产品,TPA是INTEWORK系列产品中用于汽车电子系统测试项目管理的一整套软件解决方…

k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案

前提:nvidia、cuda、nvidia-fabricmanager等相关的组件已经在宿主机正确安装,如果没有安装可以参考我之前发的文章GPU A800 A100系列NVIDIA环境和PyTorch2.0基础环境配置【建议收藏】_a800多卡运行环境配置-CSDN博客文章浏览阅读1.1k次,点赞8次,收藏16次。Ant系列GPU支持 N…

飞驰云联荣获中国信通院2024年度首期“磐安”优秀案例

2024年12月24日,中国信息通信研究院(以下简称“信通院”)在京成功举办“2025中国信息通信院ICT深度观察报告会”,会上隆重发布了由信通院数字安全护航计划组织的2024年度首期“磐安”优秀案例评选结果,Ftrans飞驰云联凭借卓越的技术创新和案例应用价值,成功入选金融领域优…

Mysql身份认证过程

背景 最近有一些hersql的用户希望能支持mysql的caching_sha2_password认证方式,caching_sha2_password与常用的mysql_native_password认证过程差异还是比较大的,因此抽空研究了一下caching_sha2_password身份认证过程,并为hersql支持了caching_sha2_password的能力hersql是我…

Cloudflare Pages 搭建 DockerHub 镜像加速器

登录https://dash.cloudflare.com/ 进入Workers创建一个Worker名称随意,然后点击部署编辑代码访问https://github.com/cmliu/CF-Workers-docker.io/blob/main/_worker.js 复制代码将代码全部替换点部署刷新预览后显示搜索框部署成功 点返回,然后选择设置,点添加自定义域名填…

开箱即用!一款支持多个大语言模型服务的桌面客户端!

Cherry Studio —— 一款支持多个大语言模型(LLM)服务的桌面客户端,兼容 Windows、Mac 和 Linux 系统。大家好,我是 Java陈序员。 可以说现在 AI 给我们的生活、工作带来了极大的便利,各种大语言模型层出不穷,功能多样。 今天,给大家介绍一款支持多模型服务的桌面客户端…

N皇后问题

题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上,并且使皇后彼此之间不能相互攻击(每一行,每一列,每个对角线上只能有一个皇后存在)。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 示例 1:输入:n = 4 输出:2 解释:如上图所示,4 皇后问题…

掌握设计模式--代理模式

代理模式(Proxy Pattern) 代理模式(Proxy Pattern)是一种结构型设计模式,允许你通过代理对象来控制对其他对象的访问。代理模式的主要目的是通过代理对象来控制原对象的访问、延迟加载、权限控制等。 组成结构Subject(主题接口):定义了真实对象和代理对象的共同接口。 …

前端实现 HTML 网页转 PDF 并导出

有个新需求,当点击【下载】按钮时,直接将当前 html页面下载为 PDF。通过 html2canvas + jsPDF 可实现PDF单页下载,甚至是多页下载,记录分享一下~ 最后有样式源码,可自取🫡有个新需求,当点击【下载】按钮时,直接将当前 html页面下载为 PDF。通过 html2canvas + jsPDF 可…

AI应用实战课学习总结(5)回归分析预测实战

本文介绍了机器学习中的起点:回归分析,并进行了一个电商用户生命周期价值(LTV)的分析预测实战,最后还进行了多种回归模型的拟合效果对比,相信你会有一个直观的印象。大家好,我是Edison。 最近入坑黄佳老师的《AI应用实战课》,记录下我的学习之旅,也算是总结回顾。 今天…