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

搬砖--贪心+排序的背包

a在上面b在下面->a.v-M-b.m>b.v-M-a.m->剩余率大
所以我先遍历a,让a在上面
这就是要考虑贪心排序的01背包
因为它有放的限制条件 

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<ll,int> pii;
int dp[20011+20];
struct zh{
	int w,v;
}a[1005];
int n;
bool cmp(struct zh a,struct zh b)///a在上面b在下面->a.v-M-b.m>b.v-M-a.m->剩余率大
								///所以我先遍历a,让a在上面
								///这就是要考虑贪心排序的01背包
								///因为它有放的限制条件 
{
	return a.v+a.w<b.v+b.w;
} 
int ma;
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i].w>>a[i].v;
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
{
	for(int v=a[i].v+a[i].w;v>=a[i].w;v--)
	{
		dp[v]=max(dp[v],dp[v-a[i].w]+a[i].v);///后者是选了这块,v-a[i].w是上面的砖要不超过
											///a[i].v 
		ma=max(ma,dp[v]);
	}
}
cout<<ma;
}

http://www.dtcms.com/a/108857.html

相关文章:

  • 请谈谈分治算法,如何应用分治算法解决大规模问题?
  • Pico4 Pro VR 和HTC Vivi 哪个好些
  • ngx_getpid() ngx_parent = ngx_getppid()
  • [C语言笔记]09、指针
  • 代码随想录Day31
  • 作用域与上下文:JavaScript魔法森林探秘
  • Python每日一题(14)
  • J1 ResNet-50算法实战与解析
  • JavaScript学习18-css操作和事件处理程序(html/DOM0/DOM2)
  • 蓝桥杯Java B组省赛真题高频考点近6年统计分类
  • 职坐标解析AI风口职业发展新机遇
  • 用大语言模型学文学常识
  • 一个alignment trap的解决办法
  • TRDI 公司的RiverPro 和 RioPro ADCP 用户指南
  • UE5 Cast To的作用
  • 图形库 EasyX - EasyX 初识(EasyX 概述、EasyX 下载与安装、打开一个窗口、打开一个彩色窗口、绘制简易图形、输出文字)
  • .NET 创建MCP使用大模型对话二:调用远程MCP服务
  • 本地化部署DeepSeek-R1蒸馏大模型:基于飞桨PaddleNLP 3.0的实战指南
  • OC添加滑块验证码
  • XLRS-Bench:您能否理解极端大型超高分辨率遥感影像?
  • 预测分析(三):基于机器学习的分类预测
  • 基于微信小程序的生签到系统设计与实现
  • c语言数据结构--------拓扑排序和逆拓扑排序(Kahn算法和DFS算法实现)
  • MySQL的安装与初始化流程
  • 联想M7400打印机怎么清零
  • 基于LangChain和通义(Tongyi)实现NL2SQL的智能检索(无需训练)
  • Spring Boot 3.4.3 和 Spring Security 6.4.2 实现基于内存和 MySQL 的用户认证
  • 《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 1】【Qemu 运行 linux 6.0.9】
  • c++函数中的多态是怎样体现的
  • Cursor的主要好处