日常扯废话:

话说题解里的思路都写得真的是很奈斯啊

但是

代码看不懂确实让人头疼(可能是我太弱了)

就像题解里的第一篇题解代码简洁但是属实看不明白

趁着学姐刚给我讲了知识还热乎赶紧给泥萌说说哈

正文:

题面

思路就是贪心,使劲贪。

其实我主要是来补充一下具体的代码解释

for (int i = n; i >= ; i--)
maxsum[i] = max (maxsum[i + ], * e[i].s + e[i].v);

这个maxsum数组存储了v由大到小, 注意是要倒着存储的。关于为什么V要从大到小因为我们有一个前缀和啊, 嗯?前缀和?对的!看 后边就懂啦!

for (int i = ; i <= n; i++)
sumv[i] = sumv[i - ] + e[i].v;

这就是我们的前缀和数组, 这个数组是存储了我们从起点走到i这个位置的时候所有的经过过的人家推销所需要的疲劳值

for (int i = ; i <= n; i++)
maxs[i] = max (maxs[i - ], e[i].s);

而这个数组则存储了当前走到的最远距离

for (int i = ; i <= n; i++)
printf ("%d\n", max (sumv[i - ] + maxsum[i], sumv[i] + * maxs [i]));

这两行可以说是我最难理解的地方了

考虑两种情况, 第一种情况前i - 1个位置所有拜访过的疲劳值再加上最大的V, 第二种情况则为所有的v再加上最远的距离的两倍

为什么会是这两种情况, 因为最大的v可能与最远的距离不同(我的语文常年垫底), 自己举一个例子可能会更直观。

干净一点的代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = ;
int n, maxsum[N], maxs[N], sumv[N];
struct node {
int s, v;
}e[N];
bool cmp (node x, node y) {
return x.v > y.v;
}
int main () {
scanf ("%d", &n);
for (int i = ; i <= n; i++)
scanf ("%d", &e[i].s);
for (int i = ; i <= n; i++)
scanf ("%d", &e[i].v);
sort (e + , e + + n, cmp);
for (int i = n; i >= ; i--)
maxsum[i] = max (maxsum[i + ], * e[i].s + e[i].v);
for (int i = ; i <= n; i++)
maxs[i] = max (maxs[i - ], e[i].s);
for (int i = ; i <= n; i++)
sumv[i] = sumv[i - ] + e[i].v;
for (int i = ; i <= n; i++)
printf ("%d\n", max (sumv[i - ] + maxsum[i], sumv[i] + * maxs [i]));
return ;
}

谢谢收看, 祝身体健康!

洛谷p2672推销员题解的更多相关文章

  1. 洛谷P2672 推销员 题解 贪心

    题目链接:https://www.luogu.org/problem/P2672 这道题目是贪心,贪心的思想是: 选择 \(m\) 户人家的最大疲劳值应该是以下两种方案中的较大值: 方案一:选择 \( ...

  2. 洛谷 P2672 推销员 解题报告

    P2672 推销员 题目描述 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有N家住户,第i家住户到入口的距离为 ...

  3. 洛谷P2672 推销员

    沙雕贪心...... 我一开始想的是倒着来,每次减去一个. 然后我们就有两个决策:去掉最后一个/去掉前面某一个. 然后第一个决策用并查集维护,第二个决策用线段树即可.仔细想想觉得普及组不会考这种东西, ...

  4. 洛谷 P2672 推销员

    题目传送门 解题思路: 我们会发现本题有一个特性,就是如果我们走到一个更远的地方,那么近的地方距离原点的距离我们可以忽略. 本题要求最大的疲劳值,所以我们需要排序,第一个想到堆,反正我是先想到堆. 然 ...

  5. 洛谷 P2672 推销员(贪心,模拟)

    传送门 解题思路 第一种: 对于选i家,很显然,a值前i-1家的一定会选,所以只需要考虑最后一家的选法.要么是选择a值第i大的(就不管s了),要么选择剩下的中s最大的. 我们把每一家的情况(s和a)存 ...

  6. 洛谷NOIp热身赛题解

    洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...

  7. 洛谷P2827 蚯蚓 题解

    洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...

  8. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  9. [POI 2008&洛谷P3467]PLA-Postering 题解(单调栈)

    [POI 2008&洛谷P3467]PLA-Postering Description Byteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长 ...

随机推荐

  1. K8S学习笔记之K8S日志搜集实战

    详细参考这篇文章,几乎覆盖了了K8S的各种日志搜集方案 https://juejin.im/post/5b6eaef96fb9a04fa25a0d37#heading-8

  2. IIS 7.5绑定中文域名转码启动站点报“值不在预期的范围内”

    问题现象 IIS 7.5在绑定中文域名转码后,启动站点会出现[值不在预期的范围内]: 解决方案 此问题是由于中文域名绑定错误导致的,IIS 7.5针对中文域名会自动转换为punycode码,所以不需要 ...

  3. winform datagridview控件使用

    最近做项目时,显示查询结果总需要绑定到datagridview控件上显示,总结了给datagridview绑定数据的方式,以及导出datagridview数据到excel表格,如有错误请多指教 1.直 ...

  4. APS.NET MVC + EF (02)---深入理解ADO.NET Entity Framework

    2.7 深入理解Entity Framework 性能问题几乎是一切ORM框架的通病,对于EF来说,引起性能低的原因主要在以下几个方面. 复杂的对象管理机制为了在.NET中更好地管理模型对象,EF提供 ...

  5. 题解 POJ 2559【Largest Rectangle in a Histogram】(单调栈)

    题目链接:http://poj.org/problem?id=2559 思路:单调栈 什么是单调栈? 单调栈,顾名思义,就是单调的栈,也就是占中存的东西永远是单调(也就是递增或递减)的 如何实现一个单 ...

  6. Spring Security 解析(三) —— 个性化认证 以及 RememberMe 实现

    Spring Security 解析(三) -- 个性化认证 以及 RememberMe 实现   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...

  7. 编写可维护的JavaScript-随笔(五)

    事件处理 当事件触发时,事件对象(event对象)会作为回调参数传入事件处理程序中,event对象包含所有和事件相关的信息 function handleClick(event){ var popup ...

  8. PHPSocket.IO知识学习整理

    一.服务端和客户端连接 1.创建一个SocketIO服务端 <?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\ ...

  9. Java 之 HashSet 集合

    一.概述 java.util.HashSet  是 Set 接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序不一致). java.util.HashSet 底层的实现是一个 ...

  10. 【python】一篇文章里的词频统计

    一.环境 1.python3.6 2.windows系统 3.安装第三方模块 pip install wordcloud #词云展示库 pip install jieba #结巴分词 pip inst ...