当前位置: 首页 > news >正文

数据结构与算法:动态规划中根据数据量猜解法

前言

这个说是算法竞赛里最重要的技巧也不为过。

一、打 怪 兽

#include<bits/stdc++.h>
using namespace std;//当money数据范围不大时,dp[i][j]为通过前i个怪兽,最多花j元钱的最大能力值
void solve1()
{int n;cin>>n;vector<int>power(n+1);vector<int>money(n+1);int sum=0;for(int i=1;i<=n;i++){cin>>power[i]>>money[i];sum+=money[i];}vector<vector<int>>dp(n+1,vector<int>(sum+1));for(int i=1;i<=n;i++){for(int j=0;j<=sum;j++){dp[i][j]=INT_MIN;//不贿赂if(dp[i-1][j]>=power[i]){dp[i][j]=dp[i-1][j];}//能贿赂且之前能通过if(j-money[i]>=0&&dp[i-1][j-money[i]]!=INT_MIN){dp[i][j]=max(dp[i][j],dp[i-1][j-money[i]]+power[i]);}}}//检查最后一行第一个能通过的答案for(int j=0;j<=sum;j++){if(dp[n][j]!=INT_MIN){cout<<j;return ;}}}//当power数据范围不大时,dp[i][j]为通过前i个怪兽,能力值正好为j的最小钱
//内存超限!!!
void solve2()
{int n;cin>>n;vector<int>power(n+1);vector<int>money(n+1);int sum=0;for(int i=1;i<=n;i++){cin>>power[i]>>money[i];sum+=power[i];}vector<vector<int>>dp(n+1,vector<int>(sum+1));//初始化for(int j=1;j<=sum;j++){dp[0][j]=INT_MAX;}for(int i=1;i<=n;i++){for(int j=0;j<=sum;j++){dp[i][j]=INT_MAX;//不贿赂if(j>=power[i]&&dp[i-1][j]!=INT_MAX){dp[i][j]=dp[i-1][j];}//贿赂if(j>=power[i]&&dp[i-1][j-power[i]]!=INT_MAX){dp[i][j]=min(dp[i][j],dp[i-1][j-power[i]]+money[i]);}}}int ans=INT_MAX;for(int j=0;j<=sum;j++){if(dp[n][j]!=INT_MAX){ans=min(ans,dp[n][j]);}}cout<<ans;
}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve1();return 0;
}</
http://www.xdnf.cn/news/870751.html

相关文章:

  • 在java 项目 springboot3.3 中 调用第三方接口(乙方),如何做到幂等操作(调用方为甲方,被调用方为乙方)? 以及啥是幂等操作?
  • 【ArcGIS微课1000例】0148:Geographic Imager6.2使用教程
  • Sentry 项目简介
  • 【Zephyr 系列 8】构建完整 BLE 产品架构:状态机 + AT 命令 + 双通道通信实战
  • dxf、dwg中文字矩阵变换
  • Django核心知识点全景解析
  • 网络攻防技术十三:网络防火墙
  • 企业私有化部署DeepSeek实战指南:从硬件选型到安全运维——基于国产大模型的安全可控落地实践
  • Redis命令使用
  • SpringAI(GA):Nacos2下的分布式MCP
  • shell:基础
  • 磐云P10 P057-综合渗透测试-使用反弹木马进行提权获取主机Shell
  • STM32学习之看门狗(理论篇)
  • 10.MySQL索引特性
  • dify中解决docx上传文件报错问题
  • 泰迪杯特等奖案例深度解析:基于量子启发优化与多尺度时空建模的港口物流智能调度系统
  • 如何应对敏捷转型中的团队阻力
  • 【位运算】丢失的数字(easy)
  • Linux进程调度:从时间片到实时任务的交响乐
  • C++——智能指针 unique_ptr
  • 【leetcode】9. 回文数
  • Hadoop大数据集群深度实践:源码分析、参数调优与自动化运维平台选型全解
  • 知识宇宙-学习篇:程序员调试思维
  • PyTest框架学习
  • docker镜像下载到本地,并导入服务器
  • spring4第6课-bean之间的关系+bean的作用范围
  • [C]extern声明变量报错:undefined reference终极解决方案
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- 第一篇:MIPI CSI-2基础入门
  • 【AAOS】【源码分析】用户管理(二)-- 用户启动
  • APx500录制波形