传送门:一道神奇的dp题

这是一道有点不像dp的dp,题意是给你n个物品,每个物品的价值为ai , 然后你可以用一个叫报价的操作,买掉这个就可以拿走比他价值小的任何一个物品,任何你有m个钱, 需要求出来你最多能买多少个物品,我们可以把他的价值排序,然后用一个二维dp数组去维护, f[i]][1]表示不报价所需的买下1-n的所有的物品所需的价钱,f[i][0]表示报价要买下1-n中所有物品的价钱,f[i][1] =a[i] + min(f[i-1][0],f[i-1][1]) , f[i][0] = a[i] + min(f[i-2][0],f[i-2][1]), 推出来状态转移方程之后就变得很简单了

题目:

ac 代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>using namespace std;
const int N = 2e5 + 5;
typedef long long LL;
LL a[N];
LL f[N][2];
int main()
{int t; cin >> t;while(t--){LL n , m , k ;cin >> n >> m  >> k ;for(int i = 1; i <= n ; i ++)cin >> a[i];sort(a+1,a+1+n);LL ans = 0;f[1][0] = f[1][1] = a[1];if(m >= a[1])ans = 1;for(int i = 2 ; i <= n ; i ++){f[i][0] = a[i] + min(f[i-2][0],f[i-2][1]);f[i][1] = a[i] + min(f[i-1][0],f[i-1][1]);if(f[i][0] <= m || f[i][1] <= m)ans = i;}cout << ans <<endl;}
}

关于队里面最菜的在博客打卡第三十八天这件事相关推荐

  1. 关于队里面最菜的在博客打卡第四十八天这件事

    传送门:https://codeforces.com/contest/1389/problem/C 多想了好多这道题,只需要暴力判断就行了,根本不用dp(虽然不知道我的dp哪错了),但是确实暴力dp就 ...

  2. 关于队里面最菜的在博客打卡第十天这件事

    题目链接Attachments - 2022 CCPC Henan Provincial Collegiate Programming Contest - Codeforces 这是一道河南省省赛的题 ...

  3. 关于队里面最菜的在博客打卡第十一天这件事

    这是一道图论的结论并且附带一些数学推公式的题 题目链接:Problem - 1540A - Codeforces 题目如下 在教室推结论结果推错了找了半天bug哎 一下是代码 :因为乘的话有可能会爆l ...

  4. 关于队里面最菜的在博客打卡第七天这件事

    POJ-3111 链接:http://poj.org/problem?id=3111 题目 这是一道 0/1 规划的变形,今天有人问怎么优化,然后就给写了一遍,感觉思路很巧妙,一样是根据表达式推出要贪 ...

  5. 关于队里面最菜的在博客打卡第四十二天这件事

    传送门:Problem - D - Codeforces 这是一道神奇的不能算是dp的dp,意思是给你一个序列,问你最多删去一个数是的严格递增的数组的最大长度是多少, 很简单,记录一下每个递增数组所属 ...

  6. 关于队里面最菜的在博客打卡第六十二天这件事

    题目:Problem - F - Codeforces 等价转换思想,以10,每次对齐一位即可 题目: ac代码: #include<iostream> #include<cstdi ...

  7. 关于队里面最菜的在博客打卡第三十一天这件事

    题目Problem - C - Codeforces 这是一道神奇的dp但又不想dp的思维dp题, 这道题是给你两个数组 a,和b, 还有一个大于等于1的数字k , 你可以让任意两个相邻的交换位置,或 ...

  8. 关于队里面最菜的在博客打卡第三十九天这件事

    传送门:一道神奇的博弈题 这是一道神奇的博弈题,题意是有n个数,然后A,和B轮流拿走其中的某个数,如果说最后A拿的数的和为偶数的话,就是A赢,否者就是B赢,然后发现奇数的个数和偶数的个数对结果会有影响 ...

  9. 关于队里面最菜的在博客打卡第六天这件事

    这是一道水题 题目链接:Problem - 1738B - Codeforces 代码: #include<iostream> #include<vector> using n ...

最新文章

  1. 通过C#代码 压缩/解压文件
  2. awk 分隔符_awk命令使用实例
  3. HEU 4048 Picking Balls
  4. 神策数据荣膺“2017 年度最受欢迎企业服务商 Top 10”
  5. ubuntu 自动加载ko_开屏广告太烦人?用这个只有 2M 的 App,助你自动跳过 5 秒等待...
  6. Flutter PageView 属性使用详解
  7. matlab错误打印,MATLAB中数据输出格式出现错误?
  8. 开课吧:什么是包?如何定义包?
  9. solaris系统的crontab定时任务
  10. Ubuntu 查看硬盘容量
  11. 张涵诚对于税务信息化跨入大数据云计算时代的思考
  12. 泛生子Q2及臻和招股书速读
  13. Qt学习笔记(二)【软件样式及界面外观设置】
  14. vue项目storage本地存储
  15. 微软今天的Windows 10硬件发布会汇总:手机瞬间变PC
  16. Tik Tok小店:英国tiktok小店怎么核对结算
  17. mysql自定义自增序列
  18. php文章段落,php – 段落功能的新行
  19. 心理测评软件php mysql_中小学心理测评软件系统
  20. 基于图像的三维重建——稠密重建准备(8)

热门文章

  1. Java实现数组的倒序输出
  2. Ipad在局域网中连接虚拟机最简单的办法
  3. [LeetCode] 36. 有效的数独(java实现)模拟题
  4. 镀金天空-js逆向1
  5. [19-8-21]UWP快速入门
  6. 1、CC2530单片机介绍
  7. C语言入门系列之10.结构体和共用体
  8. windows 7 下cuda 9.0 卸载、cuda8.0 安装
  9. 使用opencv实现单目标定相机标定(摘抄)
  10. 每天一个设计模式之 -- 组合模式