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

Codeforces Round 946 (Div. 3) E. Money Buys Happiness

  • m m m个月,每个月月底发 x x x的薪水,也就是第 i i i个月只能用前 i − 1 i-1 i1个月挣的钱,而不能用这个月挣的钱。第 i i i个月花费 c [ i ] c[i] c[i]的薪水能获得 h [ i ] h[i] h[i]的快乐度,问最多能获取的快乐度是多少。 m m m h [ i ] h[i] h[i]都较小

考虑01背包,设 d p [ i ] dp[i] dp[i]表示获得快乐度为 i i i的最小花费, j j j表示当前为第 j j j个月份,那么有 d p [ i ] = m i n { d p [ i − h [ j ] ] + c [ j ] } , ( c [ j ] + d p [ i − h [ j ] ] ≤ ( j − 1 ) x ) dp[i]=min\{dp[i-h[j]]+c[j]\},(c[j]+dp[i-h[j]]\leq (j-1)x) dp[i]=min{dp[ih[j]]+c[j]},(c[j]+dp[ih[j]](j1)x)
也就是快乐度为 i i i是通过快乐度为 i − h [ j ] i-h[j] ih[j]转移过来的,注意倒序枚举

#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll INF = 0x3f3f3f3f3f3f3f3f;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int t;cin >> t;while(t--) {int m, x;cin >> m >> x;vector<ll> c(m + 1), h(m + 1);ll total = 0;for(int i=1;i<=m;i++) {cin >> c[i] >> h[i];total += h[i];}vector<ll> dp(total + 1, INF);dp[0] = 0;for(int j=1;j<=m;j++) {for(int i=total;i>=h[j];i--) {if(1ll * x * (j - 1) >= dp[i - h[j]] + c[j]) {dp[i] = min(dp[i], dp[i - h[j]] + c[j]);}}}int ans = 0;for(int i=total;i>=0;i--) {if(dp[i] != INF) {ans = i;break;}}cout << ans << '\n';}return 0;
}

相关文章:

  • 【ARM-Linux篇】智能家居语音模块配置
  • cad怎么转成pdf文件?方法很简单!
  • qgis导入excel文件
  • Vue61-消息订阅与发布-任意组件之间的通信
  • 产品应用 | 小盒子跑大模型!英码科技基于算能BM1684X平台实现大模型私有化部署
  • 如何排查與解決代理伺服器有問題或者地址有誤?
  • 【计算机网络原理】常用单位换算
  • 微服务开发与实战Day11 - 微服务面试篇
  • 【基因功能富集2:分析流程】非模式生物怎么注释 clusterProfiler包GO、KEGG
  • 【Linux Vim的保姆级教程】
  • 《平衡小车控制系统》电子设计大赛校赛感悟
  • A44 STM32_HAL库函数 之SD通用驱动 --B -- 所有函数的介绍及使用
  • 有哪些技术可代替docker?
  • Java--数组的使用
  • 数据结构习题
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • android 一些 utils
  • Codepen 每日精选(2018-3-25)
  • leetcode46 Permutation 排列组合
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • node-glob通配符
  • Otto开发初探——微服务依赖管理新利器
  • vue.js框架原理浅析
  • Vue实战(四)登录/注册页的实现
  • vue数据传递--我有特殊的实现技巧
  • windows下使用nginx调试简介
  • 编写高质量JavaScript代码之并发
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 经典排序算法及其 Java 实现
  • 前端
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #pragma 指令
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $.ajax()方法详解
  • (1)Nginx简介和安装教程
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二十四)Flask之flask-session组件
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .Net OpenCVSharp生成灰度图和二值图
  • .net Signalr 使用笔记
  • .NET 事件模型教程(二)
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net打印*三角形
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [2016.7 test.5] T1