【HDU5361】In Touch
题意
有n个人住在一条直线上,从左到右编号为1,2,3....n
两个相邻的人距离为1米,每个人都有一个电话,第i个人可以给它距离大于等于li且小于等于ri的人打电话,花费为ci.
现在第一个人想知道给每个人打电话的花费最小值是多少
n<= 2*10^5
0<=li<=ri<=n
分析
这个题乍一看以为是单源最短路的模板题,但是看了数据规模发现没法建图。
我们来找这个题和普通最短路的一个区别:从某个点到它所能到达的任何一个点的花费是相同的。那么我们让d[i]为到i的花费+c[i](c[i]是从i向别的点打电话的花费)。如果这样跑dijstra的话,每次从队列中取出来的一个点,都已经是最优了,以后的所有操作都不需要再对它进行松弛操作。所以说,每个点只需要被更新一边。如果这样的话时间复杂度就是O(N)的。但是如何实现这个“被更新过的点不会被再次更新”?
然后我发现,无论如何记录或者什么的,都没法做到。。。(自己太菜了)
然后看别人的代码,发现了神奇的并查集优化ORZ
int pos=find(i)可以理解为,i结点右边最近的一个还没被更新的点是哪个。然后每次更新i以后都进行一个操作p[find(i)]=find(i+1)。
【HDU5361】In Touch的更多相关文章
- 【转载】Sencha Touch 提高篇 组件选择器
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:威老 原文地址:http://www.cnblogs.com/weil ...
- 【iOS】3D Touch
文章内容来源于Apple的开发者文档:https://developer.apple.com/library/content/documentation/UserExperience/Conceptu ...
- 【转】Android:Touch事件分发机制
Touch事件分发中只有两个主角:ViewGroup和View.Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理. View在 ...
- 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
原文:Getting Started with Sencha Touch 2: Build a Weather Utility App (Part 3) 作者:Lee BoonstraLee is a ...
- 手机touch事件及参数【转】(自己懒得写了,找了一篇摘过来)
[html5构建触屏网站]之touch事件 前言 一个触屏网站到底和传统的pc端网站有什么区别呢,交互方式的改变首当其冲.例如我们常用的click事件,在触屏设备下是如此无力. 手机上的大部分交互都是 ...
- 【二】jekyll 的使用
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- 【Swift】UITableViewCell 中 TTTAttributedLabel 超链接无法点击的问题
前言 还以为是自己代码写的有问题,用法和别的地方都一样,但是这个是在 UITableViewCell 中使用,另外在 tableHeaderView 中使用也没用这个问题 —— 使用 TTTAttri ...
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
- GJM : Unity3D 常用网络框架与实战解析 【笔记】
Unity常用网络框架与实战解析 1.Http协议 Http协议 存在TCP 之上 有时候 TLS\SSL 之上 默认端口80 https 默认端口 ...
随机推荐
- matplotlib ----- 初步
直接看几段代码即可: # 加载模块的方式 import matplotlib.pyplot as plt import numpy as np # 最简单的单线图 x = np.linspace(0, ...
- vue怎么自定义指令??
最近看看vue中自定义指令,感觉vue的指令和angular1的指令相差较大 <script> //指令钩子函数: /* bind 只调用一次,指令第一次绑定到元素的时调用 inserte ...
- 快速创建yii2 RESTful api的小记
1.复制backend的应用到同级目录,改名叫api 2.然后就是配置项修改,common和api目录下的 common下: bootstrap.php最后添加一行配置 api/config/main ...
- 高速AD中的LVDS和FPGA
通常情况下,模拟输入信号通过高速ADC的量化输出的数字信号需要交给FPGA进行处理.如果高速ADC采用LVDS输出,那么经量化处理过的数字信号将会有非常多的LVDS数据差分对.而LVDS数据接收端,接 ...
- Ten Qualities of an Effective Team Player
If you were choosing team members for a business team in your organization, who would the best team ...
- java web 程序---刷新页面次数
<%! int count=0; %> <% count++; session.setAttribute("count",count); out.print(&q ...
- 设计模式—单例模式(java)
一:懒汉式 1: 线程安全的双重锁检查机制 public class Singleton{ private Singleton() {} // 私有构造函数,保证不被外界实例化(不考虑反射) ...
- css3的transition属性的使用
transition是将某个属性从一个属性值在指定的时间内平滑过渡到另一个属性值来实现动画效果.这个属性一般搭配:hover来使 下面看一个例子:鼠标放在div上,0.2s后将div元素的背景色用一秒 ...
- 在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案
我在使用SpringMVC的@RequestBody和@ResponseBody注解处理JSON数据的时候,总是出现415的错误,说是不支持所提交数据格式,我在页面中使用了JQuery的AJAX来发出 ...
- 安装FFmpeg3.0.9
//静态版的 FFmpeg Static Builds release: 3.3.3 https://www.johnvansickle.com/ffmpeg/ ffmpeg-release-64 ...