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

启发式搜索(直观命名+详细注释版)

代码参考至oiwiki

题目:

https://www.luogu.com.cn/problem/P1048dda

#include<bits/stdc++.h>
using namespace std;int n,m,ans;struct Node{int time,value;   //耗时与价值double cost_performance;    //性价比
} node[102];bool cmp(Node p,Node q){return p.cost_performance>q.cost_performance; //排序,性价比高的优先
}int still(int num,int package){    //估值函数 //计算在取了num个、剩余时间package的情况下,还能取到的剩余物品的最大价值int tot = 0;    //统计价值for(int i=1;num+i<=n;i++){if(package>=node[i+num].time){    //如果剩余时间package>=node[i+num]的耗时package -= node[num+i].time;tot+=node[num+i].value;}else return (int)(tot+package*node[num+i].cost_performance);   //若剩余时间package<node[i+num]的耗时,则 tot+剩余时间*node[i+num]的性价比 作为估算的最大值}return tot;  //若剩余时间能取完剩余所有就返回tot
}void dfs(int num,int package,int value){   //dfs搜索ans = max(ans,value);if(num>n) return;  //边界条件判出if(still(num,package)+value>ans) dfs(num+1,package,value);  //若还能取的剩余物品的估计最大值<=ans,则剪枝不搜了if(node[num].time<=package) dfs(num+1,package-node[num].time,value+node[num].value);    //若剩余时间package<node[num]的耗时,则剪枝不搜了
}signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>m>>n;for(int i=1;i<=n;i++){cin>>node[i].time>>node[i].value;node[i].cost_performance = 1.0 * node[i].value / node[i].time;    //计算第i个物品的性价比}sort(node+1,node+1+n,cmp);dfs(1,m,0);cout<<ans;return 0;
}

http://www.mrgr.cn/news/55986.html

相关文章:

  • 【Power Query】List.Select 筛选列表
  • SqlDbx连接oracle(可用)
  • 关于懒汉饿汉模式下的线程安全问题
  • GRPC 压缩算法
  • 未来智慧城市发展的四大引领方向
  • 详解Shell脚本与Ansible自动化工具差异
  • 300元内头戴式耳机哪个品牌音质好?四款高音质表现头戴品牌推荐!
  • 【C++】基于红黑树的 Map 和 Set 封装及实现过程详述
  • 电商API:定义、功能、特点及广泛应用场景解析
  • ESP-IDF搭建项目的目录结构
  • 宠物用品在线交易:SpringBoot框架的高效实现
  • Rust 中的条件变量:深入解析与实践
  • 在广交会上,中小型外贸公司如何开发大客户?
  • 基于tfjs实现线性回归等基本模型
  • 哈希表模拟封装unordered_map和unordered_set
  • DLNA—— 开启智能生活多媒体共享新时代
  • 金蝶云星空与聚水潭的高效数据集成案例
  • sharpkeys-键盘部分按键不好用,用其它不常用按键代替
  • Etcd 可观测最佳实践
  • 100个人物介绍字幕动画PR视频模板MOGRT
  • Netty初体验-1-NIO基础补漏
  • 十行代码实现命令行书签
  • Linux使用nc(netcat)命令检测网络端口是否畅通以及Linux查看CPU架构命令arch及CentOS中取版本的问题
  • Spring AI : Java写人工智能的应用框架
  • 正大金融市场的跨境投资机遇与挑战分析
  • 【数字IC】【低功耗】UPF/CPF