http://172.20.6.3/Problem_Show.asp?id=1452
很简单的二分,最开始以为是优先队列,想了想发现优先队列是有情况不能达到最优的,所以二分+贪心处理,在贪心check的时候想得有点复杂(或者说有漏洞),调了几次才过。
写代码的时候果然不能硬莽,不思考乱莽只能随机30,70,90分,没法ac。

代码

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
using namespace std;
const int maxn=;
int z,m,n;
int a[maxn]={},tot=;
int check(int x){
int y=;int w=,hug=z,t1=z;
for(int i=;i<=n+;i++){
if(a[i]-a[y]>=x){
hug=min(hug,t1);
t1=a[i]-a[y];
w+=(i-y-);y=i;
}
}if(n+!=y){
w+=n+-y;
if(y==)w--;
t1+=a[n+]-a[y];
hug=min(hug,t1);
}
if(w==m){
if(hug<x) return ;
else return ;
}
else if(w>m) return ;
else return ;
}
int doit(){
int l=,r=z;
while(l+<r){
int mid=(l+r)/;
int w=check(mid);
if(!w)r=mid-;
else l=mid;
}int w=check(r);
if(!w)return l;
else return r;
}
int main(){
//freopen("wtf.in","r",stdin);
scanf("%d%d%d",&z,&n,&m);
tot=n+;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}a[n+]=z;
printf("%d\n",doit());
return ;
}

最新文章

  1. 为maven插件设置参数的三种方法
  2. iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解
  3. 大数据公益课堂成就你高薪之梦,30W,50W,100W...
  4. 一. JVM发展史,运行时数据区域,四大引用
  5. jQuery 杂项方法
  6. Windows多线程同步系列之二-----关键区
  7. SharePoint 2013 创建一个搜索中心和搜索设置
  8. 一篇文章学懂Shell脚本
  9. Django资源
  10. 【转】Nginx SSL_PROTOCOL_ERROR 问题
  11. Java 多线程异步处理demo
  12. 数据库用户映射到SQL Server登录名
  13. vue 脚手架关于路由的一点理解
  14. PL/SQL编程--变量声明及赋值
  15. How to mount HFS EFI on macOS
  16. C语言学习记录之一
  17. 《HTTP 权威指南》笔记:第三章 HTTP 报文
  18. 升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方式
  19. Lua------------------改善Unity编辑器对Lua文件的支持
  20. Uncaught TypeError: $(...).daterangepicker is not a function

热门文章

  1. bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列——map+hash+转换
  2. GXC 钱包部署
  3. Unity下的ECS框架 Entitas简介
  4. poj 1837 Balance(背包)
  5. 【swupdate文档 一】嵌入式系统的软件管理
  6. netlink socket编程
  7. centos安装ss教程
  8. java获取项目路径,url路径
  9. DEADBEEF
  10. hdu 1829(继续扩展并查集)