推销员(codevs 5126)

题目描述 Description

阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有N家住户,第i家住户到入口的距离为Si米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入,依次向螺丝街的X家住户推销产品,然后再原路走出去。阿明每走1米就会积累1点疲劳值,向第i家住户推销产品会积累Ai点疲劳值。阿明是工作狂,他想知道,对于不同的X,在不走多余的路的前提下,他最多可以积累多少点疲劳值。

输入描述 Input Description

第一行有一个正整数N,表示螺丝街住户的数量。
接下来的一行有N个正整数,其中第i个整数Si表示第i家住户到入口的距离。数据保证S1≤S2≤…≤Sn<10^8。
接下来的一行有N个正整数,其中第i个整数Ai表示向第i户住户推销产品会积累的疲劳值。数据保证Ai<10^3。

输出描述 Output Description

输出N行,每行一个正整数,第i行整数表示当X=i时,阿明最多积累的疲劳值。

样例输入 Sample Input

【样例1】
5
1 2 3 4 5
1 2 3 4 5

【样例2】
5
1 2 2 4 5
5 4 3 4 1

样例输出 Sample Output

【样例1】
15
19
22
24
25

【样例2】
12
17
21
24
27

数据范围及提示 Data Size & Hint

1≤N≤100000
注:请用 scanf 输入。

/*刚开始想了一个贪心思路,不知道对不对,然而真的就对了,只不过是O(n^2)的,TLE,然后用优先队列优化就过了。贪心思路首先我们明确,找前i个住户一定是在i-1的基础上找的,具体方法是记录当前我们最远找到的村庄位置now,因为当你往回找和往前找时走的路程是不同的,对于now来说,我们有两种决策,一种是向上找,一种是向下找,找到最大值加入ans,这样是O(n^2)的方法。然而我们发现向上找的部分会随now的变大而逐渐不浪费时间,向下找的部分则会重复找很多次,所以我们搞一个优先队列,再记录一个当前最远的入队元素位置from,每次当我们更新now时,就把from+1到now内的元素放入优先队列,这样我们在下一次向下找的时候就不用再循环一遍,而是直接从优先队列中取头元素就好了。 
*/
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#define M 100010
using namespace std;
int n,ans;
struct node
{int v,pos;bool operator< (node x)const{return v<x.v;}
};node a[M],b;
priority_queue<node> q;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i].pos);for(int i=1;i<=n;i++)scanf("%d",&a[i].v);b.v=0;b.pos=0;q.push(b);int now=0,from;for(int i=1;i<=n;i++){b=q.top();int mx=b.v,p=0;for(int j=now+1;j<=n;j++)if((a[j].pos-a[now].pos)*2+a[j].v>mx){mx=(a[j].pos-a[now].pos)*2+a[j].v;p=j;}if(p){b.pos=p;b.v=mx;from=now;now=p;q.push(b);for(int j=from+1;j<now;j++)q.push(a[j]);}node b=q.top();ans+=b.v;q.pop();printf("%d\n",ans);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/harden/p/5811386.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python管理系统web版_Python学生管理系统(web网页版)-Go语言中文社区

前言&#xff1a;本项目是使用Python的Django的web框架搭建的&#xff0c;是一个完整的学生管理系统&#xff0c;功能包括基本的增删改查 项目演示图&#xff1a; 首页展示数据的页面&#xff08;index.html&#xff09;添加学生的页面&#xff08;add.html&#xff09;搜索学生…

hog函数的用法 python_Python常见内置函数用法(三)

本文作者&#xff1a;孙雪丽文字编辑&#xff1a;周聪聪技术总编&#xff1a;张学人重大通知&#xff01;&#xff01;&#xff01;2019年6月22日至24日在河南郑州举行Stata编程技术特别训练营&#xff0c;招生工作已经圆满结束。另外爬虫俱乐部将于2019年7月5日至7月8日在武汉…

pytorch打印模型每层的结构

可以用torchsummary下的summary方法&#xff0c;或者torchinfo下的summary方法&#xff0c;两者功能是一样的 以torchsummary下的summary方法为例说明 首先通过pip install torchsummary 之后在代码中&#xff1a; from torchsummary import summarysummary(model, (1, 28,…

学会动态丨中国人工智能学会成功召开重大科学问题《智能生成机理》研讨会...

来源&#xff1a;中国人工智能学会为配合国家科技发展的重大需求&#xff0c;推进重大科学问题的研究&#xff0c;形成相应的政策建议&#xff0c;中国人工智能学会于9月29日上午9时在北邮科技大厦召开了“重大科学问题《智能生成机理》研讨会”。现场专家们通过深入交流&#…

Linux文件(区域)锁函数 -- open()、fcntl()

一、什么是文件锁定 对于锁这个字&#xff0c;大家一定不会陌生&#xff0c;因为我们生活中就存在着大量的锁&#xff0c;它们各个方面发挥着它的作用&#xff0c;现在世界中的锁的功能都可归结为一句话&#xff0c;就是阻止某些人做某些事&#xff0c;例如&#xff0c;门锁就是…

**Java有哪些悲观锁的实现_「Java并发编程」何谓悲观锁与乐观锁,Java编程你会吗...

何谓悲观锁与乐观锁悲观锁乐观锁两种锁的使用场景乐观锁常见的两种实现方式1. 版本号机制2. CAS算法乐观锁的缺点1 ABA 问题2 循环时间长开销大3 只能保证一个共享变量的原子操作CAS与synchronized的使用情景何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方…

现代版的大案牍术:数字孪生在城市的应用

来源&#xff1a;阿里研究院最近大火的电视剧《长安十二时辰》中&#xff0c;靖安司大规模启用秘密核武器——大案牍术&#xff0c;书吏们从各个部门汇总来的人员往来、钱粮货物流水中寻找到蛛丝马迹甚至未卜先知&#xff0c;再结合长安版的5G通讯——望楼通信与大沙盘&#xf…

关于样式表setStyleSheet

在Qt中设置widget背景颜色或者图片方法很多种&#xff1a;重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。 但是各种方法都有其注意事项&#xff0c;如果不注意则很容易陷入麻烦中。 1&#xff1a;setStyleSheet() 这个函数我一直很喜欢使用&#xff0c;因为只…

react打包后图片丢失_使用 webpack 搭建 React 项目

简评&#xff1a;相信很多开发者在入门 react 的时候都是使用 create-react-app 或 react-slingshot 这些脚手架来快速创建应用&#xff0c;当有特殊需求&#xff0c;需要修改 eject 出来的 webpack 配置文件时&#xff0c;面对各种配置项不知如何下手&#xff0c;本文会介绍如…

揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活【附下载】| 智东西内参...

来源&#xff1a; 智东西AI 和 5G 与机器人技术结合&#xff0c;正在不断催生新的消费电子品类。AI 解决机器理解世界&#xff0c;以及人机交互的问题。5G 拓展机器人的活动边界&#xff0c;并为机器人提供更大的算力和存储空间&#xff08;云协作机器人&#xff09; 。根据 IF…

python方向键控制角色_用python和pygame游戏编程入门-控制角色移动

在上一节中我们知道了事件&#xff0c;以及如何捕捉键盘事件进行响应&#xff0c;本届我们结合第一节何上一节的内容&#xff0c;做一个用键盘控制角色移动的功能&#xff0c;代码如下&#xff1a; #!/usr/bin/env python #指定图像文件名称 background_image_filename ./img/…

让人工智能有情感的秘诀!清华权威报告看透情感计算【附下载】

来源&#xff1a; 智东西40 多年前&#xff0c;诺贝尔奖得主 Herbert Simon 在认知心理学方面强调&#xff0c;解决问题论要结合情感的影响。情感的识别和表达对于信息的交流和理解是必需的&#xff0c;也是人类最大的心理需求之一。人类的认知、行为等几乎都要受到情感的驱动&…

记录用户转成超级用户的文件名字_一分钟了解Linux用户

Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪&#xff0c;并控制他们对系统资…

重磅!2019年诺贝尔生理学或医学奖揭晓,“细胞感知氧气通路”摘得桂冠

来源&#xff1a;奇点网北京时间2019年10月7日17点30分&#xff0c;2019年诺贝尔生理学或医学奖揭晓&#xff0c;得主为William G. Kaelin Jr&#xff0c;Peter J. Ratcliffe和Gregg L. Semenza&#xff0c;获奖理由为“他们发现了细胞如何感知和适应氧气供应”。William G. Ka…

大一python基础编程试卷_2020大学慕课Python编程基础试题及答案

2020大学慕课Python编程基础试题及答案更多相关问题 四川总面积48.6万平方公里&#xff0c;居全国第&#xff08;&#xff09;位。 国民经济恢复是在() 马化腾是独自创立了腾讯公司 智慧职教: 颈静脉搏动可见于 马化腾是独自创立了腾讯公司 下列各项中&#xff0c;对于会计核算…

世界十大最美方程式

来源&#xff1a;数学职业家自从科学诞生后&#xff0c;不可避免地就会用到方程式&#xff0c;这些方程式以其独特的作用服务于人类的生产创造以及各门学科。而最近几百年的时间&#xff0c;更是方程式数量极大增加的时候&#xff0c;同时也是科学技术突飞猛进的年代。从侧面看…

云计算与边缘计算协同 九大应用场景

来源&#xff1a;物联网报告中心前言2019 年边缘计算备受产业关注&#xff0c;一度引起了资本市场的投资热潮&#xff0c;很多人把2019 年称作边缘计算的元年。理性来看&#xff0c;造成如此火爆局势难免有一些炒作因素在推波助澜&#xff0c;毕竟边缘计算的概念存世也已多年。…

Wireshark过滤器表达式的规则

1、抓包过滤器语法和实例 抓包过滤器类型Type&#xff08;host、net、port&#xff09;、方向Dir&#xff08;src、dst&#xff09;、协议Proto&#xff08;ether、ip、tcp、udp、http、icmp、ftp等&#xff09;、逻辑运算符&#xff08;&& 与、|| 或、&#xff01;非&…

查询手机号段对应地区编码_2020陕西专升本考试今日起查询成绩啦

专升本考试顺利结束,我们终于迎来了验收成果的时刻,每位参与专升本的同学都是最棒的,现在 我们一起去揭秘考试成绩吧&#xff01;专升本成绩查询指南成绩查询及志愿填报登陆“陕西省教育考试院”或“陕西省招生考试信息网”陕西招生考试信息网http://www.sneac.com/陕西省教育…