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

洛谷 P1336:最佳课题选择 ← 分组背包

​【题目来源】
https://www.luogu.com.cn/problem/P1336

【题目描述】
Matrix67 要在下个月交给老师 n 篇论文,论文的内容可以从 m 个课题中选择。
由于课题数有限,Matrix67 不得不重复选择一些课题。完成不同课题的论文所花的时间不同。具体地说,对于某个课题 i,若 Matrix67 计划一共写 x 篇论文,则完成该课题的论文总共需要花费  个单位时间。给定与每一个课题相对应的 Ai 和 Bi 的值,请帮助 Matrix67 计算出如何选择论文的课题使得他可以花费最少的时间完成这 n 篇论文。

【输入格式】
第一行两个整数 n 和 m,分别代表需要完成的论文数和可供选择的课题数。
接下来 m 行每行两个整数。其中,第 i 行的两个数分别代表与第 i 个课题相对应的时间系数 Ai 和指数 Bi。

【输出格式】
输出完成 n 篇论文所需要耗费的最少时间。

【输入样例】
10 3
2 1
1 2
2 1

【输出样例】
19

【数据范围】
对于 30% 的数据,n≤10,m≤5。
对于 100% 的数据,1≤n≤200,1≤m≤20,1≤Ai≤100,1≤Bi≤5。

【算法分析】
每个课题 i 视为“一组”,里面可以选择数量 x(0~n 篇),相当于一个无限物品但带特殊代价(A·xᴮ)的组。

【算法代码】

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int INF=0x3f3f3f3f;
const int N=2e2+5;
LL f[N],val[N];LL pow(LL a,LL n) {LL ans=1;for(int i=1; i<=n; i++) {ans*=a;}return ans;
}int main() {memset(f,INF,sizeof f);int n,m;cin>>n>>m;f[0]=0;for(int i=1; i<=m; i++) {LL a,b;cin>>a>>b;for(int j=1; j<=n; j++) {val[j]=a*pow(j,b);}for(int j=n; j>=1; j--) {for(int k=1; k<=j; k++) {f[j]=min(f[j],f[j-k]+val[k]);}}}cout<<f[n]<<endl;return 0;
}/*
in:
10 3
2 1
1 2
2 1out:
19
*/




【参考文献】
https://mp.weixin.qq.com/s/CLdft4m-rdVpbDdFSd52yA
https://blog.csdn.net/qq_33997572/article/details/79603411

 

http://www.jsqmd.com/news/519362/

相关文章:

  • 最长公共子序列(LCS)——从零开始的动态规划
  • 学习web第三天
  • 深入解析DRAM:从基础原理到现代应用
  • Hive实战:3种生成自增ID的保姆级教程(附row_number与UDF对比)
  • 《医学大数据与人工智能》第二周
  • 计算机毕业设计:基于Python的图书数据分析系统 Flask框架 可视化 爬虫 书籍 大数据 机器学习(建议收藏)✅
  • C++中的 lower_bound 和 upper_bound:一篇讲清楚
  • 基于FPGA的FOC电流环手动编写Verilog实现:高效、可读性强的源码与Simulink模...
  • 迷宫算法面试通关指南:华为真题详解+DFS/BFS最优解套路
  • SpringBoot实战:5分钟搞定SSE消息推送,告别轮询烦恼
  • 告别人工规则:用MAPPO+自适应环境生成器,手把手教你训练能应对未知障碍物的无人机协同追捕AI
  • 从摄像头到CAN总线:手把手梳理智驾域控制器的数据接口与布线实战
  • 2026年 上海苏州OPC园区租赁招商推荐榜:精选优质产业园区,解析区位优势与服务体系,助力企业高效选址 - 品牌企业推荐师(官方)
  • LangGraph实战:构建具备状态与决策能力的智能体工作流
  • 计算机毕业设计:Python豆瓣图书数据分析平台 Flask框架 可视化 爬虫 书籍 大数据 机器学习(建议收藏)✅
  • 保姆级教程:用trackeval评估dancetrack多目标跟踪结果(附完整文件结构解析)
  • Codeforces Round 2209
  • UI 界面组成,控制界面代码
  • 【面试真题拆解】Java的Static关键字到底怎么用?
  • 3月18日笔记
  • Cookie操作避坑指南:从浏览器复制到Python requests的完整流程解析
  • 保姆级教程:用OpenWRT打造企业级访客WiFi(含防火墙规则+DHCP避坑指南)
  • Xilinx MMCM动态相位调整:从原理到实战的时钟微调指南
  • 信息学奥赛必备:5分钟搞定配对碱基链的两种C++解法(附完整代码)
  • 从PID到深度学习:柔性机器人控制算法演进全解析(附Python示例代码)
  • 从键盘到显示屏:给STM32F4计算器加个OLED界面(I2C驱动教程)
  • 揭示提示工程架构师创新实验室的神秘面纱
  • PyQt5桌面应用内嵌Web地图避坑指南:从QWebEngineView加载到JS交互全流程
  • 华为OceanStor存储管理员密码遗忘?一文详解从串口到Web的完整重置路径
  • Pixel 2XL刷机指南:从AOSP源码编译到烧录的完整流程(附常见错误解决)