第八章 动态规划 3 AcWing 1554. 找更多硬币

news2025/7/29 11:57:48

第八章 动态规划 3 AcWing 1554. 找更多硬币

原题链接

AcWing 1554. 找更多硬币

算法标签

DP 背包问题

思路

经典01背包问题
在这里插入图片描述
闫氏DP分析法
状态表示
在这里插入图片描述
状态初始化
在这里插入图片描述
状态计算
在这里插入图片描述
状态转移方程式
在这里插入图片描述

要求字典序最小,因此先存硬币面额到数组再降序排列,保证逆序得到的是升序的方案序列

代码

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define ump unordered_map
#define ums unordered_set
#define pq priority_queue
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
typedef pair<int, int> PII;
const int N=10005, M=105, INF=0x3f3f3f3f3f3f3f3f;
const double Exp=1e-8;
//int t, n, m, cnt, ans;
int n, m, w[N];
bool f[N][M];
inline int rd(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
void put(int x) {
    if(x<0) putchar('-'),x=-x;
    if(x>=10) put(x/10);
    putchar(x%10^48);
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	f[0][0]=true;
	n=rd(), m=rd();
	rep(i, 1, n+1){
	    w[i]=rd();
	}
	sort(w+1, w+n+1, greater<int>());
	rep(i, 1, n+1){
	    rep(j, 0, m+1){
	        f[i][j]=f[i-1][j];
	        if(j>=w[i]){
	            f[i][j]|=f[i-1][j-w[i]];
	        }
	    }
	}
	if(!f[n][m]){
	    puts("No Solution");
	}else{
	    bool fi=true;
	    while(n){
	        if(m>=w[n]&&f[n-1][m-w[n]]){
	            if(fi){ 
	                fi=false;
	            }else{
	                printf(" ");
	            }
	            printf("%lld", w[n]);
	            m-=w[n];
	        }
	        n--;
	    }
	}
	return 0;
}

参考文献

AcWing 1554. 找更多硬币(PAT甲级辅导课)y总视频讲解

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

App逆向之frida-dexdump脱壳分析某肿瘤sign

声明&#xff1a;本文仅限学习交流使用&#xff0c;禁止用于非法用途、商业活动等。否则后果自负。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01;本教程也没有专门针对某个网站而编写&#xff0c;单纯的技术研究 一、firda 的安装 国内下载很慢&#xff1a;pip…

docker容器网络

第七章容器网络 Docker网络 veth pair&#xff1a;成对出现的一种虚拟网络设备&#xff0c;数据从一端进&#xff0c;从另一端出。用于解决网络命名空间之间隔离。 docker0&#xff1a;网桥是一个二层网络设备&#xff0c;通过网桥可以将Linux支持的不同端口连接起来&…

Git常见命令与使用,从0到1学会使用Git

&#x1f468;‍&#x1f4bb;个人主页&#xff1a; 才疏学浅的木子 &#x1f647;‍♂️ 本人也在学习阶段如若发现问题&#xff0c;请告知非常感谢 &#x1f647;‍♂️ &#x1f4d2; 本文来自专栏&#xff1a; 常见软件安装与运用 ❤️ 支持我&#xff1a;&#x1f44d;点赞…

linux NPS 服务端安装 +linux 客户端安装

本文参考博客&#xff1a; https://blog.csdn.net/m0_57776598/article/details/123674866 一、下载安装包 1、官方下载 官方下载地址&#xff1a;https://github.com/ehang-io/nps/releases 注意不要下错了&#xff0c;当前我下的版本为 v0.26.10 2、网盘下载 网盘下载&…

Python编程 字典的常用操作

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.字典 1.访问字典(掌握) 2.字典的增加与修改(掌握) 3.系列删除(掌握) …

Web3中文|元宇宙在商业中的最佳应用

来源 | techrepublic 编译 | DaliiNFTnews.com 麻省理工学院斯隆管理学院的信息技术高级讲师Paul McDonagh-Smith说&#xff0c;麻省理工学院的人工智能先驱Marvin Minsky创造了“手提箱式词语”一词——即一些词或术语本身没有任何意义&#xff0c;而需要人去挖掘、赋予和丰…

计算机英文论文写作需要注意哪些细节? - 易智编译EaseEditing

1&#xff09;尽量用动词少用名词化 那些大篇名词的文章真的很难读懂&#xff0c;而有强大动词的句子更容易理解。 我们注意到客户在论文中经常使用的名词有“agreement”, “disagreement”, “investigation”, “analysis”, “examination”, “comparison”, “increase…

【MySQL技术专题】「索引技术」体验前所未有的技术探险,看穿索引的本质和技术体系(1)

文章目录前提概要数据库类型内容架构索引和磁盘的关系数据读取时主要时间开销总结分析瓶颈点优化的方式数据量计算传统暴力&#xff08;顺序型读写&#xff09;X索引机制&#xff08;半随机性读写&#xff09;√索引升级之多级索引化&#xff08;全随机性读写&#xff09;使用索…

读书笔记《Spring Boot+Vue全栈开发实战》(下)

本书将带你全面了解Spring Boot基础与实践&#xff0c;带领读者一步步进入 Spring Boot 的世界。前言第九章 Spring Boot缓存第十章 Spring Boot安全管理第十一章 Spring Boot整合WebSocket第十二章 消息服务第十三章 企业开发第十四章 应用监控第十五章 项目构建与部署第十六章…

【python与数据分析】Pandas统计分析基础

目录 前言 一、pandas常用数据类型 综述 1.一维数组&#xff08;Series&#xff09;与常用操作 &#xff08;1&#xff09; 通过列表创建Series &#xff08;2&#xff09;创建Series时指定索引 &#xff08;3&#xff09;Series位置和标签的使用 &#xff08;4&#x…

m基于中继协助的认知无线电频谱切换机制的matlab仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 认知无线电网络在进行频谱切换的时候&#xff0c;最为重要的问题是如何以最少的频谱切换次数实现频谱切换&#xff0c;同时保证较好的服务质量&#xff0c;这里&#xff0c;服务质量不仅…

植入“人工心脏”助患者重获“心”生

【同期】人工心脏移植患者 刘女士这要是在过去的时候也就放弃了&#xff0c;我再活20年&#xff0c;我还能看着我大孙子成家&#xff0c;这就是我最大的希望。【解说】11月22日&#xff0c;人工心脏移植患者和心脏移植患者在即将康复出院前&#xff0c;互相握手庆贺。据了解&am…

【UDS】ISO14229之0x3E服务

文章目录前言一、理论描述二、使用步骤1.请求2.响应总结->返回总目录<- 前言 简称&#xff1a; “TesterPresent”&#xff0c;测试工具保持连接服务 功能&#xff1a; 此服务用于告知电控单元测试工具仍在线。该服务需周期性发送&#xff0c;用于重置 S3server 计时器…

SQL语句练习

1. 创建学生表 S(命名格式“姓名拼音_三位学号_s”&#xff0c;如 LBJ_023_s)并插入数据 2. 创建课程表 C(命名格式“姓名拼音_三位学号_c”&#xff0c;如 LBJ_023_c) 并插入数据 3. 创建选课表 SC(命名格式“姓名拼音_三位学号_sc”&#xff0c;如 LBJ_023_sc) 并插入数据 …

寻找链表相交结点问题

寻找链表相交结点问题 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;寻找链表相交结点问题 CSDN&#xff1a;寻找链表相交结点问题 题目描述 给定两个可能有环也可能无环的单链表&#xff0c;头节点head1和head2。请实现一个函数&#xff0c;如果两个链表…

Vue3路由守卫、vuex的使用、vuex模块化拆分、vite中自动导入模块文件

文章目录1. 路由守卫2. vuex的使用2.1 基本使用2.2 模块化拆分方式一方式二方式三3. 在vite中自动导入模块文件1. 路由守卫 vue3 中的导航守卫与 vue2 中的基本一致&#xff0c;不同的地方在于&#xff0c;vue3 中导航守卫取消了 next 参数&#xff0c;而是通过返回 false 来取…

【Silvaco example】GaN diode, Reverse-bias leakage current vs temperature

1、例子讲解 该示例演示了&#xff0c;GaN肖特基二极管中&#xff0c;因声子辅助隧穿&#xff08; phonon-assisted tunneling &#xff09;的反向偏置漏电流的温度依赖性建模。 例子参考以下论文&#xff1a; Pipinys P., and V. Lapeika, "Temperature dependence of …

Android入门第36天-以一个小动画说一下Android里的Handler的使用

简介 我们在前面的Android教程中已经提到过这么一件事&#xff1a;Android在启动后会有一个主线程。它不允许任何子线程去改变主UI线程里的内容。 这么做是为了妨止&#xff0c;万一有一个带有大事务的线程导致了渲染组件时间过长最终导致Android UI出现“闪退”、“崩溃”的…

突遇暴雨,怎样远程连接服务器

“我被封印在家里了&#xff0c;去不了单位&#xff0c;电脑关机了&#xff0c;用来远程开机远控&#xff0c;没想到遇到了大风暴雨&#xff0c;结果非常尴尬&#xff01;”最近收到好几个这样的粉丝留言。突遇暴雨&#xff0c;虽然准备了远程办公工具&#xff0c;但还没来得及…

引擎入门 | Unity UI简介–第1部分(10)

本期我们继续为大家进行Unity UI简介&#xff08;第一部分&#xff09;的后续教程 本篇内容 23.创建UI Manager 24.点击按钮时调用StartGame 文章末尾可免费获取教程源代码 本篇Unity UI简介&#xff08;第一部分&#xff09;篇幅较长&#xff0c;分为十篇&#xff0c;本篇…