Codeforces 990E Post Lamps 【暴力】【贪心】

虽然只是10^6的数据量,但用cin会tle。一直知道cin常数大,但没想到会是10^2这个级别。

我们枚举每个power的lamp,然后对每个power用平均logn的代价去求它的cost,最后取最小值

对于每个power,我们从左往右地去照亮整个区间,首先0点要插一个路灯,下一个路灯理想上想插在0+power的位置(这样区间不被重复照亮),但实际上power位置上的路灯可能被blocked了,所以我们想在power位置之前的离power最近的一个位置安装路灯。如果发现最近的那个位置离power的位置大于power了,那power位置永远不会被照亮,返回-1

这样贪心实际上每次算cost的代价是 n/power,为什么平均意义下是logn的呢。

因为整体下来是n/1+n/2+n/3+n/4+...+n/k,可见k越大整体复杂度越高,我们考虑其上限及k=n的情况,得到n(1+1/2+1/3+1/4+...+1/n),而1+1/2+1/3+1/4+1/5+...+1/n这个数列求和是logn级别的因为可以把1/3+1/4看成1/2,1/5+1/6+1/7+1/8看成1/2,接下来的每8项,16项都是1/2。然后把n看成2^k的话也可以把n看成2^0+2^1+2^2+...+2^k-1,其中每一份都对数列的和贡献出1/2,所以这个数列求和是1/2*logn左右,及logn级别的。

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int n,m,k;//长度为n,m个
 5 int cost[1000005],blocked[1000005],last_unblocked[1000005];
 6 long long ans;
 7 int main()
 8 {    
 9     cin>>n>>m>>k;
10     for(int i=1;i<=m;i++){
11         int x; scanf("%d",&x);
12         blocked[x]=1;
13     }
14     for(int i=1;i<=k;i++) scanf("%d",&cost[i]); //power为i的lamp花费cost[i] 
15     if(blocked[0]) { cout<<-1; return 0; }
16     
17     int last=0;
18     for(int i=1;i<=n;i++){
19         if(!blocked[i]) last=i;
20         last_unblocked[i]=last;
21     }
22     for(int i=1;i<=k;i++){//模拟用每个power的路灯 
23         long long c=0;
24         for(int index=0;index<n; ){//index是每一个要插路灯的位置
25             c+=cost[i];
26             if(index+i>=n) index=n;
27             else{
28                 int loc=last_unblocked[index+i];//下一个路灯想插在index+i,但这里可能被blocked了,那想照亮这个地方就找这个位置前面最近能放路灯的位置
29                 if(loc<=index) { c=-1; break; }
30                 index=loc;
31             }
32         }
33         if(c==-1) continue;
34         else{
35             if(ans==0) ans=c;
36             else ans=min(c,ans);
37         }
38     }
39     
40     if(ans==0) cout<<-1;
41     else  cout<<ans;
42     return 0;
43 }

 

转载于:https://www.cnblogs.com/ZhenghangHu/p/9191168.html

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

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

相关文章

[Luogu 2486] SDOI2011 染色

[Luogu 2486] SDOI2011 染色 树剖水题&#xff0c;线段树维护。 详细题解不写了。 我只想说我写的线段树又变漂亮了qwq #include <algorithm> #include <cstdio> #include <cstring> const int MAXN100010; int n,m; class HLD {private:bool vis[MAXN];int …

完全卸载HDP和Ambari

文章转载自&#xff1a;https://imaidata.github.io/blog/uninstall_hdp_ambari/ 用于个人学习、备查&#xff0c;转载请注明原作者。 简介&#xff1a; 在不需要重装操作系统的情况下完全卸载HDP&#xff0c;并准备好自动安装HDP2.6的环境。 文章&#xff1a; 升级HDP失败…

HBase 配置详解

文章转载自&#xff1a;http://blog.csdn.net/ningxuezhu/article/details/50547970 仅用于个人学习&#xff0c;收藏&#xff0c;作为资料备查&#xff0c;如需转载请注明原作者。 该文档是用hbase默认配置文件生成的&#xff0c;文件源是hbase-default.xml hbase.rootdir …

文件拷贝(字符、字节)

1.字节流byte&#xff1a;读入到字节数组后&#xff0c;返回一个长度len&#xff0c;如果没有读到数据&#xff0c;len-1 2.字符流char&#xff1a;同样是-1 3.代码生成器&#xff1a;null 一行一行地读 4.键盘录入&#xff0c;写入文件 5.构造器&#xff0c;追加用true 6.类…

HBae找不到协处理器导致RegionServer全部挂掉

一、问题背景&#xff1a; 跟兄弟单位公用一个大数据集群&#xff0c;通过Dataspace结合Kerberos控制数据的访问&#xff0c;我们生产环境中用到的OLAP工具Kylin&#xff0c;在升级Kylin的过程中&#xff0c;由于删除了旧的协处理器&#xff0c;导致原来数据继续去寻找目标协处…

Spark SQL的整体实现逻辑

1、sql语句的模块解析 当我们写一个查询语句时&#xff0c;一般包含三个部分&#xff0c;select部分&#xff0c;from数据源部分&#xff0c;where限制条件部分&#xff0c;这三部分的内容在sql中有专门的名称&#xff1a; 当我们写sql时&#xff0c;如上图所示&#xff0c;在进…

Mysql的高可用方案及主从详细配置

1、常用的高可用MySQL解决方案&#xff1a; 数据库作为最基础的数据存储服务之一&#xff0c;在存储系统中有着非常重要的地位&#xff0c;因此要求其具备高可用性无可厚非。能实现不同SLA(服务水平协定)的解决方案有很多种&#xff0c;这些方案可以保证数据 库服务器在硬件或…

vue3+element plus组件库中el-carousel组件走马灯特效,当图片变动时下面数字也随着图片动态变化

1.效果图 2.html <section style"height:30%"><div class"left-img1-title"><img src"../assets/img/title.png"alt""srcset""><div class"text">回收垃圾数量</div></div>…

数据库MySQL/mariadb知识点——数据类型

数据类型 所谓的列类型&#xff0c;其实就是指数据类型&#xff0c;即对数据进行统一的分类&#xff0c;从系统的角度出发是为了能够使用统一的方式进行管理&#xff0c;更好的利用有限的空间。 在 SQL 中&#xff0c;将数据类型分成了三大类&#xff0c;分别为&#xff1a;数值…

HDFS查看文件的前几行-后几行-行数

随机返回指定行数的样本数据 hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | shuf -n 5 返回前几行的样本数据 hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | head -100 返回最后几行的样本数据 hadoop fs -cat /test/gonganbu/scene_anal…

psql: FATAL the database system is in recovery解决

报错&#xff1a; FATAL: the database system is in recovery mode 解决思路&#xff1a; 在hawq master节点 1、执行hawq state &#xff0c;提示 database is down 2、查看hawq master进程&#xff1a; ps aux | grep postgresql &#xff0c;发现master进程不在 3、查…

软件工具组功能逆向工程设想

背景&#xff1a;昨天小智公布了软件工具组现在的几个项目组&#xff0c;大概罗列了现阶段软件工具组的主要职能&#xff0c;总结起来说就是将现有设计方案生成渲染图、全景图、视频、CAD等&#xff0c;看完所有这些功能我不禁设想了一下&#xff0c;如果软件工具组的功能逆向工…

FAIL : SSHException: Incompatible ssh peer (no acceptable kex algorithm)

问题描述&#xff1a; 在安装greenplum&#xff0c;执行gpssh-exkeys过程中抛出异常 Incompatible ssh peer (no acceptable kex algorithm) 原因&#xff1a; 由于ssh 6.7以上屏蔽不安全算法 解决&#xff1a; 在/etc/ssh/sshd_config最后加上 KexAlgorithms curve25519…

集群监控之Ganglia的部署

转载地址&#xff1a;https://www.slothparadise.com/how-to-install-ganglia-on-centos-7/ 找了一堆文章&#xff0c;全都误导了&#xff0c;这篇正解。 总结步骤如下&#xff1a; 1、server端 &#xff1a; yum install -y ganglia-gmetad ganglia-web ganglia-gmond rrd…

期货大赛项目|九,fileinput插件的应用

引入JS和CSS bundles.Add(new ScriptBundle("~/bundles/fileinputJs").Include( "~/Content/vendors/bootstrap-fileinput-master/js/fileinput.min.js", "~/Content/vendors/bootstrap-fileinput-master/js/locales/zh.js", "~/Scripts/fi…

redis见解

http://blog.csdn.net/zhiguozhu/article/details/50517527Redis原生session与redis中的session区别原生session在服务器上是以文件的形式存储的&#xff0c;所以其有一些磁盘io上的缺点 1&#xff09; 有哪几种类型的数据结构String——字符串  value 不仅可以是 String&…

快速解读GC日志

文章转载自&#xff1a;http://blog.csdn.net/renfufei/article/details/49230943 本文是 Plumbr 发行的 Java垃圾收集指南 的部分内容。文中将介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息。我们通过 -XX:UseSerialGC 选项,指定JVM使用串行垃圾收集器, 并使…

HBase meta元数据损坏导致hbase master初始化失败

故障起因&#xff1a; 跑kylin任务&#xff0c;过程出错&#xff0c;异常信息&#xff1a;Direct buffer memory&#xff0c; java.io.IOException: java.lang.OutOfMemoryError: Direct buffer memoryat org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.ha…

HBase shell执行批量脚本

场景描述&#xff1a; HBase namespace中有大量无用的小表&#xff0c;占用了过多的block&#xff0c;需要批量删除&#xff0c;了解了一下有两种方式&#xff1a; 1、使用通配符 用drop命令可以删除表。在删除一个表之前必须先将其禁用。 hbase(main):018:0> disable em…

时间序列分析综述

一.基本分类 1.单变量的传统时间序列分析 2.单变量的随机时间序列分析 3.多变量的时间序列分析 建立在回归基础上的两变量序列分析 建立在AR基础上的多变量序列分析 4.截面时序数据结合的分析 转载于:https://www.cnblogs.com/xyp666/p/9220667.html