蓝桥杯备赛-精卫填海-DP

精卫终于快把东海填平了!只剩下了最后的一小片区域了。同时,西山上的木石也已经不多了。精卫能把东海填平吗?
事实上,东海未填平的区域还需要至少体积为 v 的木石才可以填平,而西山上的木石还剩下 n 块,每块的体积和把它衔到东海需要的体力分别为 k 和 m。精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为 c。

输入格式

输入文件的第一行是三个整数:v,n,c。从第二行到第 n+1 行分别为每块木石的体积和把它衔到东海需要的体力。

输出格式

输出文件只有一行,如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出 Impossible(不带引号)。

输入输出样例

输入 

100 2 10
50 5
50 5

输出 

0

输入 

10 2 1
50 5
10 2

输出 

Impossible

说明/提示

数据范围及约定

  • 对于 20% 的数据,0<n≤50;
  • 对于 50% 的数据,0<n≤1000;
  • 对于 100% 的数据,0<n≤104,所有读入的数均属于 [0,104],最后答案不大于 c。
//精卫填海,8/10,2个超内存
#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
int main(){int v, n, c;cin >> v >> n >> c;//需要的体积,石头的数量,目前的体力值int k[100000];//体积int m[100000];//体力//或//vector<int> k(n + 1); // 体积//vector<int> m(n + 1); // 体力for (int i = 1; i <= n; i++){cin >> k[i] >> m[i];}vector<vector<int>> a(n + 1,vector<int>(v+1,0));//用i个石头填满j体积,需要的最少体力//必要:初始化一个很大的数表示不可能,用零块填满是不可能的,所有初始化最大。下面条件判断用的是min,如果不初始化最大,那么后面一直都是for (int i = 0; i < v + 1; i++)a[0][i] = 100000;//不必要:a[i][0]是0或100000不影响结果/*for (int i = 0; i < n + 1; i++)a[i][0] = 100000;*/for (int i = 1; i <= n; i++) {for (int j = 1; j <= v; j++) {//动态规划的核心:保持j的不变if (k[i]>=j) //一个石头就能填满{a[i][j] = min(a[i - 1][j], m[i]);//不放、只放一个、全放(舍)}else //一个石头填不满{a[i][j] = min(a[i - 1][j - k[i]]+m[i], a[i - 1][j]);//放、不放}}}if (a[n][v]>c)cout << "Impossible";elsecout << c-a[n][v];//注意用c-,不要忘记了return 0;
}

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

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

相关文章

2025面试Go真题第一场

前几天参加了一场面试&#xff0c;GoLang 后端工程师&#xff0c;他们直接给了我 10 道题&#xff0c;我留了一个截图。 在看答案之前&#xff0c;你可以先简单做一下&#xff0c;下面我会对每个题目做一个说明。 文章目录 1、golang map 是否并发安全?2、协程泄漏的原因可能是…

JavaScript 简单类型与复杂类型-堆和栈

深入理解JavaScript中的简单类型&#xff08;基本数据类型&#xff09;与复杂类型&#xff08;引用数据类型&#xff09;如何在内存中存储对于编写高效、无误的代码至关重要。本文将探讨这两种类型的差异&#xff0c;以及它们在内存中的存储机制——栈&#xff08;Stack&#x…

腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票

腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票 作者:某七年数据开发工程师 | 2025年02月23日 关键词:SQL窗口函数、连续问题、股票分析、腾讯面试题 一、问题背景与难点拆解 在股票量化分析场景中,"连续N天满足条件"是高频面试题类型。本题要求在单表stoc…

图像处理、数据挖掘、数据呈现

目录 图像处理方法 阈值分割 图像处理方法 图像平滑 图像锐化 图像增强 阈值分割 边缘检测 阈值分割 特征提取 提取边界 区域提取 主成分压缩 POI 多源数据 数据挖掘 多源数据提取 关联度提取 位置集群&#xff0c; 新闻事件&#xff0c; 权限 个人喜好 历史…

嵌入式项目:STM32刷卡指纹智能门禁系统

本文详细介绍基于STM32的刷卡指纹智能门禁系统。 获取资料/指导答疑/技术交流/选题/帮助&#xff0c;请点链接&#xff1a; https://gitee.com/zengzhaorong/share_contact/blob/master/stm32.txt 1 系统功能 1.1 功能概述 本系统由STM32硬件端&#xff08;下位机&#xff09;…

计算机毕业设计 ——jspssm504springboot 职称评审管理系统

作者&#xff1a;程序媛9688 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xf…

安装VM和Centos

安装VM 一、打开虚拟机 二、选择典型 三、选择光盘 四、指定虚拟机位置 五、设置磁盘大小并拆分为多个文件 六、完成 安装Centos 一、上述过程完成后我们直接打开虚拟机 二、语言选择中文 三&#xff0c;默认安装位置并点击完成 四、点击开始安装 五、点击设置密码 等待安装…

【AI应用】数字人涉及的一些主要 AI 技术

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 在 数字人搭建 过程中&#xff0c;涉及多个 AI 技术&#xff0c;包括 训练微调、算法、图像合成、声音克隆&#xff0c;每个部分都决定了最终效果的真实度、交互流畅度和个性化能力。…

【尝试使用python调用Seismic unix】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、代码总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 使用seismic unix尝试建立界面&#xff0c;首先想到使用pyqt&#xff0c…

【安装及调试旧版Chrome + 多版本环境测试全攻略】

&#x1f468;&#x1f4bb; 安装及调试旧版Chrome 多版本环境测试全攻略 &#x1f310; &#xff08;新手友好版 | 覆盖安装/运行/调试全流程&#xff09; &#x1f570;️ 【背景篇】为什么我们需要旧版浏览器测试&#xff1f; &#x1f30d; &#x1f310; 浏览器世界的“…

2. EXCEL中函数和公式《AI赋能Excel》

欢迎来到滔滔讲AI。今天我们来学习和讨论下函数和公式是什么&#xff0c;以及它们之间的区别。 点击图片查看视频 2、AI赋能EXCEL-函数和公式 一、什么是函数 首先&#xff0c;我们来了解一下函数。函数是Excel中预定义的计算工具&#xff0c;能够帮助我们快速进行各种计算。 …

Python常见面试题的详解16

1. 如何强行关闭客户端和服务器之间的连接&#xff1f; 在网络编程中&#xff0c;有时需要强行中断客户端和服务器之间的连接。对于基于 TCP 协议的连接&#xff0c;由于其面向连接的特性&#xff0c;需要采取特定的步骤来确保连接被正确关闭&#xff1b;而 UDP 是无连接协议&a…

【深度学习】矩阵的核心问题解析

一、基础问题 1. 如何实现两个矩阵的乘法&#xff1f; 问题描述&#xff1a;给定两个矩阵 A A A和 B B B&#xff0c;编写代码实现矩阵乘法。 解法&#xff1a; 使用三重循环实现标准矩阵乘法。 或者使用 NumPy 的 dot 方法进行高效计算。 def matrix_multiply(A, B):m, n …

在CentOS 7下部署NFS的详细教程

在CentOS 7下部署NFS的详细教程 NFS&#xff08;Network File System&#xff09;是一种分布式文件系统协议&#xff0c;允许用户在网络中的不同主机之间共享文件和目录。NFS广泛应用于Linux和Unix系统中&#xff0c;特别适合在集群环境中共享存储资源。本文将详细介绍如何在C…

js中的await与async的使用

以下两个方法&#xff0c;区别只在有没有catch&#xff0c;使用的时候却要注意 // 封装请求方法&#xff0c;同步loading状态出去 export const fetchWithLoading async (fn: Function, params: any, loading: Ref) > {loading.value true;try {return await fn(params);…

Ubuntu服务器 /data 盘需要手动挂载的解决方案

服务器 /data 盘需要手动挂载的解决方案 如果重启服务器后&#xff0c;发现 /data 盘 没有自动挂载&#xff0c;通常是因为&#xff1a; /etc/fstab 配置文件 没有正确设置 自动挂载。该磁盘 没有被正确识别&#xff0c;需要手动挂载。文件系统错误 导致挂载失败。 下面是解…

输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路

详细前端代码写于上一篇&#xff1a;输入搜索、分组展示选项、下拉选取&#xff0c;el-select 实现&#xff1a;即输入关键字检索&#xff0c;返回分组选项&#xff0c;选取跳转到相应内容页 —— VUE项目-全局模糊检索 【效果图】&#xff1a;分组展示选项 >【去界面操作体…

【SpringBoot】_统一功能处理:统一数据返回格式

目录 1. 对所有返回类型方法进行统一数据返回类型处理 2. 部分返回类型方法存在的问题 3. 对两种有误的方法进行处理 仍以图书管理系统为例。 创建Result对后端返回给前端的数据进行封装&#xff0c;增加业务状态码与错误信息&#xff0c;将原本的数据作为data部分&#xff…

智能交通系统(Intelligent Transportation Systems):智慧城市中的交通革新

智能交通系统&#xff08;Intelligent Transportation Systems, ITS&#xff09;是利用先进的信息技术、通信技术、传感技术、计算机技术以及自动化技术等&#xff0c;来提升交通系统效率和安全性的一种交通管理方式。ITS通过收集和分析交通数据&#xff0c;智能化地调度、控制…

Unity百游修炼(1)——FootBall详细制作全流程

一、引言 游玩测试&#xff1a; Football 游玩测试 1.项目背景与动机 背景&#xff1a;在学习 Unity 的过程中&#xff0c;希望通过实际项目来巩固所学知识&#xff0c;同时出于对休闲小游戏的喜爱&#xff0c;决定开发一款简单有趣的小游戏加深自己的所学知识点。 动机&#…