題解/算法 {4616. 击中战舰}

题目链接

题解

给定一个长度为 N N N 的区间A, 其中隐藏着一个长度为 K K K 的段, 记作B; 其位置是不确定的
比如, N = 5 , K = 3 N = 5, K = 3 N=5,K=3, 那么这个B 可能在[1,2,3] 可能在[2,3,4] 可能是[3,4,5]

你可以从A中, 选择若干个位置, 使得: 剩余的A中, 一定不可能存在B (即不存在长度>=K的段)

问最少选择多少个位置, 且输出方案;


正确的方法是: 选择[K] [2K] [3K] …, 直到不存在长度>=K的段;
比如, N = 8 , K = 3 N = 8, K = 3 N=8,K=3, 选择: 1, 2, [3], 4, 5, [6], 7, 8; (选择3,6)

看一种错误的思路: 如果用二分: 第一次选择中间[4], 剩余: [1,2,3] [5,6,7,8]
然后选择2 和 6, 最终得到: [1] [3] [5] [7,8]
… 需要选择3个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值