解题报告-程序员宅基地

author:sdgzy

6.12日

T1总感觉是一个假题,T3推推式子看出单调性就没了。
T2比较有意思:

题目大意:n个物品,属性为w,r,选择第i件物品后,之后每选择一个物品都会减去r的价值。
求按顺序选择物品的最大价值。

solution:
考虑对于一个必须选择的物品集合(大小为n)
答案是:\(\sum w_i - \sum r_i * (n - i)\)
价值总和是\(\sum w_i\),是一个不变的值。
让后面那个最小
即r从小到大排序即可。
这样就把顺序问题解决了。

那我们可以按照r从小到大的顺序排序(这只是思路,写法有待考虑)
没有顺序问题,只是单纯的选择物品就是一个背包问题了。

结束上面的思考后。
让r从小到大排序。
然后依次选择:
转移方程
dp[i][j]=max{dp[i-1][j],dp[i-1][j-1]+W[i]-R[i]*(j-1)}
现在码力下降的很厉害。

#include <bits/stdc++.h>
#define gc getchar()
using namespace std;
const int maxN = 3000 + 7;

inline int gi() {
    int x = 0,f = 1;char c = gc;
    while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
    while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
    return x * f;
}

int f[maxN][maxN];

struct Node {
    int w , r;
}a[maxN];
bool cmp(Node a , Node b) {return a.r > b.r;}

int main() {
    int n = gi();
    for(int i = 1;i <= n;++ i) a[i].w = gi(),a[i].r = gi();
    sort(a + 1,a + n + 1,cmp);
    for(int i = 1;i <= n;++ i) 
        for(int j = 1;j <= i;++ j) 
            f[i][j] = max(f[i - 1][j] , f[i - 1][j - 1] + a[i].w - a[i].r * (j - 1));
    int ans = 0;
    for(int i = 1;i <= n;++ i) ans = max(ans , f[n][i]);
    printf("%d",ans);
    return 0;
}

5d00a3fa958c882618.jpg

转载于:https://www.cnblogs.com/lykkk/p/11009689.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dengjiao4915/article/details/101907356

智能推荐

OCR识别PDF文件_ocr识别pdf格式-程序员宅基地

文章浏览阅读5k次,点赞2次,收藏14次。1现有解析pdf的方法使用org.apache.pdfbox读取pdf,只能读取pdf中的文字,有些纸件扫描成的pdf文字会错乱,有些字还是图片的方式显示的,导致读取的内容不全,常常会获取不到想要的数据。2 OCR文字识别pdf需要转换为图片,进行识别,识别率高。2.1 调用百度接口优点:识别率高,识别速度快缺点:按次收费2.2 使用开源工具读取pdf文档2.2.1..._ocr识别pdf格式

ROS-rqt工具箱_ros rqt 调试工具-程序员宅基地

文章浏览阅读409次,点赞6次,收藏9次。可以方便的实现 ROS 可视化调试,并且在同一窗口中打开多个部件,提高开发效率,优化用户体验。ROS基于 QT 框架,针对机器人开发提供了一系列可视化的工具,这些工具的集合就是rqt。rqt_robot_plugins——运行中和机器人交互的插件(比如: rviz)启动:可以在 rqt 的 plugins 中添加,或者使用rqt_bag启动。简介:rqt_console 是 ROS 中用于显示和过滤日志的图形化插件。rqt_common_plugins——rqt 中常用的工具套件。简介:可视化显示计算图。_ros rqt 调试工具

【虚拟化实战】网络设计之四Teaming-程序员宅基地

文章浏览阅读81次。作者:范军 (Frank Fan) 新浪微博:@frankfan7 微信:frankfan7Network teaming这个概念在物理服务器中早就很普遍,我们往往会在物理服务器设置多个物理网卡的Teaming,除了防范因为网卡故障造成的单点故障之外,还有负载均衡的目的。在虚拟环境中,绝大多数情况下无需为了容错或者负载均衡的目的,为一个虚拟机连..._虚拟机 teaming

matlab的常微分求解和ode45的应用_matlab 微分方程 ode45 相对误差绝对误差 是什么-程序员宅基地

文章浏览阅读1.3k次。matlab的常微分求解和ode45的应用_matlab 微分方程 ode45 相对误差绝对误差 是什么

图解机器学习算法(4) | 逻辑回归算法详解(机器学习通关指南·完结)_机器学习逻辑回归算法-程序员宅基地

文章浏览阅读1.2w次,点赞4次,收藏21次。逻辑回归简单有效且可解释性强,是机器学习领域最常见的模型之一。本文讲解逻辑回归算法的核心思想,并讲解sigmoid函数、梯度下降、解决过拟合、线性/非线性切分等重要知识点。_机器学习逻辑回归算法

c++ builder的tchart的series的bug_tchart 点曲线-程序员宅基地

文章浏览阅读337次。c++ builder6.0中使用tchart(4.0版本)的series属性在绘制曲线的时候,斜线总是不平滑,总是有波折,有什么办法解决(不考虑用其他控件还是用tchart的series属性,可以考虑高点版本的tchart,咋这里就是想询问一下大家有没有遇到过,然后是怎么解决的)。..._tchart 点曲线

随便推点

IDEA(七) 使用UML类图_idea查看类图快捷键-程序员宅基地

文章浏览阅读2.2k次。IDEA(七) 使用UML类图_idea查看类图快捷键

Axios配置-程序员宅基地

文章浏览阅读4.3k次。Axios封装_axios配置

堆与堆排序_堆条件要满足什么条件-程序员宅基地

文章浏览阅读2.5k次。堆排序参考自:链接: link1 概念1) 堆的基本概念堆 是一种特殊的树,满足以下条件即为堆:首先堆是一个完全二叉树堆中每一个节点的值都必须大于等于(或小于等于)其左右子节点的值每个节点都大于等于其子树节点的堆叫“大顶堆“或大根堆,根是最大值每个节点都小于等于其子树节点的堆叫“小顶堆“或小根堆,根是最小值因为堆的要求不像二叉搜索树那么严格。他只要求某个节点的子节点大于或小于该节点,因此同一组数据,可以构建多种不同形态的堆:2)堆的表示堆是完全二叉树,大部分时候都是使用数组来存储_堆条件要满足什么条件

eNSP-DHCP服务_ensp dhcp服务器的配置-程序员宅基地

文章浏览阅读2.7k次,点赞19次,收藏16次。​​dhcp enable #在路由器上启用DHCP服务int G0/0/1 #在接口上应用验证:(在PC1上)在eNSP中配置DHCP服务器是一个重要的网络管理任务。通过DHCP服务器,我们可以自动分配IP地址、子网掩码、网关以及其他网络参数给连接到网络的设备。下面是我对eNSP中DHCP服务器配置的学习总结。我们需要在eNSP中创建一个网络拓扑并连接设备。然后,在一个路由器上启用DHCP服务器功能。我们可以通过命令行界面或者Web界面进行配置。_ensp dhcp服务器的配置

RPA 软件的类别,选择 RPA软件时考虑的要点,选择正确 RPA 软件-程序员宅基地

文章浏览阅读264次。本文将介绍RPA软件的类别,选择RPA软件时需要考虑的要点,以及如何正确选择RPA软件。兼容性:选择一个兼容多种设备和平台的RPA软件,可以减少硬件和软件的投资成本。对比分析:在确定需求后,组织可以对比多个RPA软件的功能、性能、价格等方面的差异,以找到最适合自己需求的软件。明确需求:在选择RPA软件之前,组织应明确自己的自动化需求,包括需要自动化的业务流程、目标和预期效果等。API驱动的RPA软件:这类RPA软件通过调用API接口实现自动化操作,可以与其他系统集成,实现跨系统的数据交换和自动化操作。_rpa软件

4端口DDR控制器的设计与实现_两路视频 一个ddr-程序员宅基地

文章浏览阅读3.9k次。1 在视频图像显示界面中,需要用到DDR作为视频缓存的存储器,在一路视频输入的过程中,我们采用DDR的两个BANK的乒乓操作来实现视频的缓存,实现了数据的无损耗缓存和显示,这种方法已经得到了广泛的应用,但是,当我们是两路视频的输入呢,两个DDR的BANK已经无法满足我们的需求,一个乒乓的循环操作满足不了两路数据输入,此时我们会想到一个DDR有4个BANK,我们可以采用两个BANK作为_两路视频 一个ddr