博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Enduring Exodus CodeForces - 655C (二分)
阅读量:5142 次
发布时间:2019-06-13

本文共 719 字,大约阅读时间需要 2 分钟。

大意: n个房间, 1为占用, 0为未占用, John要将k头奶牛和自己分进k+1个空房间, 求John距最远的奶牛距离的最小值

 

 

这种简单题卡了20min....

显然对于固定的k+1个房间, 只需要John在最接近中央的房间即可, 枚举每k个房间, 找出最接近的就行了

这样复杂度是$O(nlogk)$

还可以直接二分答案, 复杂度$O(nlogn)$

 

#include 
#include
#include
#define REP(i,a,n) for(int i=a;i<=n;++i)using namespace std;const int N = 4e5+10;int n, k;int a[N];char s[N];int main() { scanf("%d%d%s", &n, &k, s+1); REP(i,1,n) if (s[i]=='0') a[++*a] = i; n = *a; int ans = 1e9; REP(i,1,n-k) { int j = i+k; int p = lower_bound(a+i,a+j+1,(a[i]+a[j])/2)-a-1; REP(r,p,p+3) if (i<=r&&r<=j) { ans = min(ans, max(abs(a[i]-a[r]),abs(a[j]-a[r]))); } } printf("%d\n", ans);}

 

转载于:https://www.cnblogs.com/uid001/p/10410673.html

你可能感兴趣的文章
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
洛谷 P3237 [HNOI2014]米特运输
查看>>
Attributes.Add用途与用法
查看>>
JavaScript面向对象初探——封装和继承
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
OpenFire 的安装和配置
查看>>
ZJOI2018游记Round1
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
ios应用版本号设置规则
查看>>
海上孤独的帆
查看>>
error: more than one device and emulator 问题解决
查看>>
Java基础:容器
查看>>
YUV摘要格式
查看>>