美文网首页
NOIP:烽火传递

NOIP:烽火传递

作者: LamyGoGoGo | 来源:发表于2017-02-09 15:09 被阅读0次

描述 Description

烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情。在某两座城市之间有n个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确的传递,在m个烽火台中至少要有一个发出信号。现输入n、m和每个烽火台发出的信号的代价,请计算总共最少需要花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确的传递!!!

输入格式 Input Format

第一行有两个数n,m分别表示n个烽火台,在m个烽火台中至少要有一个发出信号。

第二行为n个数,表示每一个烽火台的代价。

输出格式 Output Format

一个数,即最小代价。

样例

5 3

1 2 5 6 2

4

时间限制 Time Limitation

各个测试点1s

注释 Hint

1<=n,m<=1,000,000

分析

要用动态规划的方法解决。我们可以写出这样的方程f[i]:=min{f[j]}+a[i] (i-m<=j<=i-1)

我们想到了用单调队列进行优化,由于随着i的循环,每次只有一个i进入决策区间也只有一个i出决策区间,由于每次选取决策区间中的最小值,所以维护一个单调递增序列,每次取出队首元素即可。

为什么可以将队尾元素无情的删去呢?由于后进队的序列同时满足在原序列中的位置更靠后和其在动态规划中的价值更大。这样选取这个元素就要比选取之前的任何一个决策要优,所以之前被删掉的决策都是无用的。

这道题的本质就是用单调队列维护了决策本身的价值和其在原序列中位置的同时单调。

要特别注意单调队列中的值是决策在原决策序列中的位置。

补充:

设f[i]表示点燃当前位置烽火台,且前i个满足要求的最小代价。

显然就有f[i]=min(f[j])+a[i](i-m<=j<=i-1)

当然,这会超时,所以要有优化。

优化一:肯定是从前m个里选小的,涉及到区间最小值,可用线段树,时间复杂度将为O(n log m)。

优化二:同样因为要选前m个最小的,使用单调队列,队列里存有不超过m个长度单位的值,每次取队首,进队时维护队列使其单调不下降,复杂度将为O(n)。

相关文章

  • NOIP:烽火传递

    描述 Description 烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上。一旦有敌情发生,白天燃...

  • 同步调用、回调和异步调用区别

    同步调用是以一种阻塞式调用 比如说:古代的长城的烽火传递信息,现在我们假设每个烽火只能看到相邻的烽火状态,每个烽火...

  • 传递正能量

    蜜蜂传粉,是生命的传递;多米诺骨牌倾倒,是力量的传递;烽火台升起狼烟,是信息的传递;薪火相传,是文化的传递...

  • 传递正能量

    蜜蜂传粉,是生命的传递;多米诺骨牌倾倒,是力量的传递;烽火台升起狼烟,是信息的传递;薪火相传,是文化的传递...

  • 🎧 038 涨知识:古代的“狼烟”跟狼粪没半毛钱关系

    文 /柳七归来 狼烟,是中国古代边防兵发现敌情时在烽火台点燃的烽火,用于传递讯息。那为什么古人把烽火称作狼烟呢?有...

  • 【入门篇3】NOIP开篇(三)

    本篇重点介绍一下NOIP的初赛和复赛的情况以及如何准备初赛与复赛。 NOIP简介 NOIP是CCF(中国计算机学会...

  • centos/乌班图 vps服务器 ddns动态解析noip.c

    打开http://www.noip.com网站用邮箱注册 cd ~进入当前用户的home目录 mkdir noip...

  • 免费DDNS

    路由器是桥接模式 小米路由器支持的DDNS 这里用noip:https://www.noip.com/[https...

  • 讲解器的发展历程

    声音信息的传播历程 纵观人类传递信息的历程,从口口相传,到文字传递,驿站,烽火狼烟,旗语,灯光,书信,再到广播,电...

  • 区块链+5G:通信易建,安全难解

    信息传递是社会生活的重要载体。从古代的驿传、烽火台、飞鸽传书到21世纪的全球化信息时代,信息的传递方式和传递速度实...

网友评论

      本文标题:NOIP:烽火传递

      本文链接:https://www.haomeiwen.com/subject/kzriittx.html