程序设计思维与实践 Week11 作业 E 选做题11-1 东东与 ATM

2023-05-16

题目描述:

一家银行计划安装一台用于提取现金的机器。
机器能够按要求的现金量发送适当的账单。
机器使用正好N种不同的面额钞票,例如D_k,k = 1,2,…,N,并且对于每种面额D_k,机器都有n_k张钞票。
例如,
N = 3,
n_1 = 10,D_1 = 100,
n_2 = 4,D_2 = 50,
n_3 = 5,D_3 = 10
表示机器有10张面额为100的钞票、4张面额为50的钞票、5张面额为10的钞票。
东东在写一个 ATM 的程序,可根据具体金额请求机器交付现金。
注意,这个程序计算程序得出的最大现金少于或等于可以根据设备的可用票据供应有效交付的现金。

input:

程序输入来自标准输入。 输入中的每个数据集代表特定交易,其格式为:Cash N n1 D1 n2 D2 ... nN DN其中0 <= Cash <= 100000是所请求的现金量,0 <= N <= 10是 纸币面额的数量,0 <= nk <= 1000是Dk面额的可用纸币的数量,1 <= Dk <= 1000,k = 1,N。 输入中的数字之间可以自由出现空格。 输入数据正确。

output:

对于每组数据,程序将在下一行中将结果打印到单独一行上的标准输出中。

思路:

多重背包问题,需要二进制拆分转换为01背包,否则超时,滚动数组降维,否则超空间。。。

这是一个容量恰好为i的问题,答案应为max{f[i]}

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,ans,a[11],b[11],f[100010],v[10010];
int main()
{
	int t; 
	while(scanf("%d",&t)!=EOF)
	{
		memset(f,0,sizeof(f));
		memset(v,0,sizeof(v));
		ans=0;
		cin>>n;
		for(int i=1;i<=n;i++)
		cin>>a[i]>>b[i];
		int cnt=0;
		for(int i=1;i<=n;i++)
		{
			int tmp=a[i];
			for(int k=1;k<=tmp;k<<=1)
			{
				cnt++;
				v[cnt]=k*b[i];
				tmp-=k;
			}
			if(tmp>0)
			{
				cnt++;
				v[cnt]=tmp*b[i];
			}
		}
		for(int i=1;i<=cnt;i++)
		{
			for(int j=t;j>=0;j--)
			{
				if(j-v[i]>=0)
				f[j]=max(f[j],f[j-v[i]]+v[i]);
			}
		}
		for(int i=1;i<=t;i++)
		ans=max(ans,f[i]);
		cout<<ans<<endl;
	}
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序设计思维与实践 Week11 作业 E 选做题11-1 东东与 ATM 的相关文章

  • 使用frida获取微信EnMicroMsg.db 数据库密码

    这件事情浪费我两天时间 xff0c 期间遇到了各种坑 xff0c 记录一下 工具 xff1a python3 7 6 frida 12 8 0 mumu模拟器 adb SqlCipher 0x00 frida Frida是一款轻量级HOOK
  • Windows 下将 Nginx 设置成服务

    0 需求背景 每次启动 Nginx 都要去到 Nginx 安装目录下寻找 redis server exe 文件点击 xff0c 很是麻烦 并且要命令行启动 xff0c 一般解决方案可能是批处理文件 xff0c 但是仍要点击 假如确定服务要
  • Mac安装Anaconda后无法在终端使用conda命令 | pip install 换源命令

    解决办法 xff1a 在键入命令前先source一下 source bash profile 之后便可以正常执行conda 或 pip命令 在通过pip安装其他包时速度较慢 pip install xxx i https pypi doub
  • 程序设计思维与实践 Week13 实验

    目录 A 1 T1输入格式输出格式Sample InputSample OutputSample Input 2Sample Output 2思路代码 B 1 T2输入格式输出格式Sample InputSample Output思路代码
  • 程序设计思维与实践 Week15 实验

    目录 A Q 老师的记录册输入输出输入样例1输出样例1输入样例2输出样例2输入样例3输出样例3思路代码 B ZJM的本领输入输出样例输入1样例输出1样例输入2样例输出2思路代码 C TT 的神秘任务 XInputOutput样例输入1样例输
  • 程序设计思维与实践 Week6 模拟赛 A 掌握魔法の东东 II

    题目描述 xff1a 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围区间是 0 到 A 1
  • 用java实现判断回文

    判断回文 要求代码实现 要求 编码实现 xff1a 输入一个字符串 xff0c 判断该字符串是否是回文 xff08 回文是指将该字符串含有的字符逆序排列后得到的字符串和原字符串相同的字符串 xff09 如果是回文 xff0c 则输出 Yes
  • codeblocks的多行快速注释的快捷键

    codeblocks的多行快速注释的快捷键 多行注释的快捷键 xff1a ctrl 43 shift 43 c 取消多行注释的快捷键 xff1a ctrl 43 shift 43 x
  • ubuntu错误添加了环境变量

    1 问题 今天试着安装一些东西 xff0c 错误的多添加了一些环境变量 xff0c 在虚拟环境里没有发现异样 xff0c 但从虚拟环境出来后发现在终端输入许多命令都显示未找到命令 xff0c 比如 终端输入 python 显示 bash p
  • win10摄像头灰色斜杠问题(Lenovo)

    方法一 百度 xff1a 在笔记本win10系统中 xff0c 通常都自带有摄像头功能 xff0c 但是有用户想要打开摄像头进行拍照或者视频的时候 xff0c 却遇到了不能用的情况 xff0c 一直显示一个灰色相机加一个斜杠 xff0c 没
  • SQL注入__布尔盲注和时间盲注

    SQL注入 布尔盲注和时间盲注 布尔盲注 猜测数据库 id 61 1 39 and length database 61 8 id 61 1 39 and length database gt 8 当前数据库第一位 截取数据库第一位 通过A
  • 命令执行绕过技巧

    命令执行绕过技巧 参考 xff1a https blog csdn net weixin 39190897 article details 116247765 参考 xff1a https blog csdn net solitudi ar
  • kali-信息收集简介

    kali 信息收集简介 nbtscan 这是一款用于扫描Windows网络上NetBIOS名字信息的程序 该程序对给出范围内的每一个地址发送NetBIOS状态查询 xff0c 并且以易读的表格列出接收到的信息 xff0c 对于每个响应的主机
  • 如何将图片转化为base64编码格式显示

    如何将图片转化为base64编码格式显示 base64编码 是将数据用 64 个可打印的字符进行编码的方式 xff0c 任何数据底层实现都是二进制 xff0c 所以都可以进行 base64编码 xff0c base64编码 主要用在数据传输
  • 利用frp工具实现内网穿透

    利用frp工具实现内网穿透 注意 xff1a 此工具依赖一个有公网 IP 的 PC 或服务器 内网穿透工具就是为了解决上述的没有公网 IP 的问题的 frp简介 项目地址 xff1a https github com fatedier fr
  • MISC相关工具下载

    写在前面 xff1a 本文包含在windows和在kali下使用的工具 xff0c win下已做标 MISC相关工具下载 图片相关 jpg f5 steganography F5隐写 xff0c 需要passwd 安装 kali中安装 xf
  • 程序设计思维与实践 Week8 作业 B 猫猫向前冲

    题目描述 xff1a 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xff0c 3 xf
  • CobaltStrike的使用

    CobaltStrike的使用 01CobaltStrike CobaltStrike是一款渗透测试神器 xff0c 被业界人称为CS神器 CobaltStrike分为客户端与服务端 xff0c 服务端是一个 xff0c 客户端可以有多个
  • Wireshark软件使用教程

    Wireshark软件使用教程 Wireshark是非常流行的网络封包分析软件 xff0c 可以截取各种网络数据包 xff0c 并显示数据包详细信息 常用于开发测试过程各种问题定位 本文主要内容包括 xff1a 1 Wireshark软件下
  • Sublime text 3 如何下载安装汉化插件,配置python2编译环境

    Sublime text 3 如何下载安装汉化插件 xff0c 配置python2编译环境 下载地址 下载地址 xff1a http www sublimetext com download 软件汉化 首先 xff0c 需要安装Packag

随机推荐

  • 利用WireShark将pcap数据流还原文件

    利用WireShark将pcap数据流还原文件 使用工具 xff1a WireShark WinHex 1 打开pcap文件 2 对数据流进行筛选 利用ctrl 43 f打开或Edit 编辑查找分组 选择分组字节流 字符串 xff0c 筛选
  • 利用python脚本删除txt文件每行后4个字符,并换行

    利用python脚本删除txt文件每行后4个字符 xff0c 并换行 import os filename 61 r 34 123 txt 34 new filename 61 r 34 1234 txt 34 with open file
  • 摩斯密码解密py脚本

    摩斯密码解密py脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010
  • MinGW+Sublime Text下载和安装运行C和C++程序

    MinGW 43 Sublime Text下载和安装运行 MinGW下载和安装教程 http c biancheng net view 8077 html Sublime Text运行C和C 43 43 程序 http c bianchen
  • grep 命令介绍

    grep 命令介绍 grep 查找文件里符合条件的字符串 xff0c 常与管道符 cat ps一起使用 xff1b 主要用于查找文件中符合条件的字符串 统计文件中符合条件的字符串行数 grep 不显示自身进程 grep 常用命令参数 c x
  • Kali Linux 安装slowhttptest步骤

    Kali Linux 安装slowhttptest步骤 Slowhttptest其实是一个DoS压力测试工具 xff0c 它集成有三种慢速攻击模式 slowloris slow http post slow read attack xff0
  • 在Centos中,程序运行是正常的,外部不能访问,内部可以访问问题解决

    在Centos中 xff0c 程序运行是正常的 xff0c 外部不能访问 xff0c 内部可以访问问题解决 今天遇到一个问题 xff0c 在centos中用python3搭建的一个web服务 xff0c 发现在centos内部可以访问网站
  • 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器

    题目描述 xff1a 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个小目标 xff0c
  • jsoncpp linux平台编译和arm移植

    0x00 下载 http sourceforge net projects jsoncpp 或者 http download csdn net detail chinaeran 8631141 0x01 Linux平台编译 安装 scons
  • 摩斯密码解码脚本

    摩斯密码解码脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0
  • php匹配关键字并跳转页面

    php匹配关键字跳转页面 strstr函数搜索要从目标字符串中搜索的字符串 xff1b strstr函数仅用于检查字符串是否存在 xff1b strstr函数的用法如下 lt php b 61 39 or 39 name 61 GET 39
  • docker常见命令小结

    docker常见命令小结 常见命令 docker ps 查看正在运行的容器 docker exec it 264bb068855e bin bash 进入容器 xff0c 并作出修改 docker commit 3bd0eef03413 l
  • 前端html文件下载,同源与异源下载

    属性说明download下载的资源的名称target打开该连接的方式 self blank href资源的地址 本地 远程地址 a标签跳转 lt DOCTYPE html gt lt html gt lt head gt lt meta c
  • Python图像(字母数字)识别

    本文只针对数字或字母验证码识别 准备工具 tesseract ocr w64 setup v4 1 0 20190314 exepip install pytesseractpip install pillow中文包 tesseract o
  • Python习题

    1 题目 xff1a 编写一个程序 xff0c 使用for循环输出0 10之间的整数 xff1b 代码 xff1a span class token keyword for span i span class token keyword i
  • 面向对象模块和包

    文章目录 1 1 模块1 2 模块的使用2 包 1 1 模块 参考链接 xff1a Python 面向对象 模块和包 来源 xff1a CSDN Python面向对象 模块和包 来源 xff1a CSDN 概念 xff1a 每一个以py为拓
  • SUNDIALS库的编译和使用

    SUNDIALS库的编译和使用 1 简介 SUNDIALS SUite of Nonlinear and DIfferential ALgebraic equation Solvers 是由美国劳伦斯利福摩尔国立实验室 xff08 Lawr
  • 【ing】在Linux虚拟机上安装Sundials库(图文)

    1 Sundials库下载 Sundials下载地址 2 具体步骤 2 1 下载sundials 2 2 0 本次尝试选择sundials 2 2 0进行安装 Sundials文件内容如下 xff1a 2 2 创建安装目录 安装目录名称为
  • 基于docker部署Prometheus

    文章目录 基于Docker搭建Prometheusgitee 介绍Prometheus一 安装运行Prometheus docker版 部署Prometheus1 安装docker联网状态下阿里云离线安装包下载2 下载镜像包3 启动node
  • 程序设计思维与实践 Week11 作业 E 选做题11-1 东东与 ATM

    题目描述 xff1a 一家银行计划安装一台用于提取现金的机器 机器能够按要求的现金量发送适当的账单 机器使用正好N种不同的面额钞票 xff0c 例如D k xff0c k 61 1 2 N xff0c 并且对于每种面额D k xff0c 机