首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

蓝桥杯每日一练——P1048 [NOIP2005 普及组] 采药

  • 24-02-22 01:01
  • 3420
  • 12415
blog.csdn.net

题目链接

[NOIP2005 普及组] 采药 - 洛谷https://www.luogu.com.cn/problem/P1048

题目描述

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”

如果你是辰辰,你能完成这个任务吗?

 

题目分析

 典型的01背包问题,给出二维解法和一维状态压缩解法

代码实现 

  1. //01背包二维数组
  2. #include
  3. using namespace std;
  4. int T, M;
  5. int tim[101], val[101];
  6. int f[101][1001];
  7. int main() {
  8. cin >> T >> M;//采药时间、采药数目
  9. for (int m = 1; m <= M; m++) cin >> tim[m] >> val[m];
  10. //01背包动态规划核心代码
  11. for (int m = 1; m <= M; m++) {//遍历采药数目
  12. for (int t = 1; t <= T; t++) {//遍历采药时间
  13. f[m][t] = f[m - 1][t];
  14. if(t >= tim[m]) f[m][t] = max(f[m][t], f[m - 1][t - tim[m]] + val[m]);
  15. }
  16. }
  17. cout << f[M][T] << endl;
  18. return 0;
  19. }
  1. //01背包状态压缩
  2. #include
  3. using namespace std;
  4. int T, M;
  5. int tim[101], val[101];
  6. int g[1001];
  7. int main() {
  8. cin >> T >> M;//采药时间、草药数目
  9. for (int m = 1; m <= M; m++) cin >> tim[m] >> val[m];
  10. //状态压缩核心代码
  11. for (int m = 1; m <= M; m++) {
  12. for (int t = T; t >= tim[m]; t--) {
  13. g[t] = max(g[t], g[t - tim[m]] + val[m]);
  14. }
  15. }
  16. cout << g[T] << endl;
  17. return 0;
  18. }

注:本文转载自blog.csdn.net的战士小小白的文章"https://blog.csdn.net/weixin_53173524/article/details/124265944"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top