分析

我们如果想击中全部的船
是不是全部连续的0段隔b个发一炮就可以(贪心)
现在我们想至少打中一个船
那就需要全部打中少a - 1次
这样就至少打中一个了
(如果都没打中的话,不可能a - 1次后打中a个船)

ac code

import sys
input = sys.stdin.readlinen, a, b, k = list(map(int, input().split()))
s = input().strip()# 射中所有船要ans次
# 射中一个船,那么就是ans - (a - 1)次
lst = []
l, r = -1, -1
for i in range(n):if s[i] == '1':if l == -1:l, r = -1, -1continueelse:cnt = 0while l + cnt <= r:if cnt % b == b - 1:lst.append(l + cnt + 1)cnt += 1l, r = -1, -1continueelse:if l == -1:l, r = i, ielse:r = icnt = 0
while l + cnt <= r:if cnt % b == b - 1:lst.append(l + cnt + 1)cnt += 1
m = len(lst)
# print(lst)
print(m - (a - 1))
print(*lst[(a - 1):])

总结

未知问题转化为已知问题
逆向思维
将问题往自己熟悉的位置靠拢
再把熟悉的位置往问题靠拢

codeforces:D. Sea Battle【跳跃性思维 + 贪心 + 逆向思维】相关推荐

  1. CodeForces - 618D Hamiltonian Spanning Tree(思维+贪心)

    题目链接:点击查看 题目大意:首先给出n个点,n*(n-1)/2条边组成的无向图,边的权值为y,现在给出一棵连接n个点的树,树上的权值都是x,现在问如何在每个点只遍历一次的情况下走遍n个点,并使一路上 ...

  2. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  3. codeforces#320(div2) D Or Game 贪心

    codeforces#320(div2) D  "Or" Game  贪心 D. "Or" Game time limit per test 2 seconds ...

  4. Codeforces 1077B Disturbed People(思维题)

    Codeforces 1077B Disturbed People(思维题) There is a house with nn flats situated on the main street of ...

  5. 测试适合眉形的软件_软件测试的自我修养:正向思维与逆向思维

    提起正向思维与逆向思维大家一定都不陌生,因为这是一个老生常谈的问题了.这样的思维方式一直贯穿着软件测试案例设计和执行的始末,现有的软件测试科学理论体系依赖测试的预想结果和实际结果来决定软件的正确性.下 ...

  6. Codeforces 437C The Child and Toy(贪心)

    题目连接:Codeforces 437C  The Child and Toy 贪心,每条绳子都是须要割断的,那就先割断最大值相应的那部分周围的绳子. #include <iostream> ...

  7. F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)

    https://ac.nowcoder.com/acm/contest/9984/F 参考:F 魏迟燕的自走棋(贪心+并查集) 将每个人看成一个点,武器的能力值抽象成边,这样就转化成图论的模型了. 然 ...

  8. 跳跃性思维的一些特征【转】

    好吧!我勇敢地承认我是跳跃性思维.跳跃性思维又称选单式思考,经常讲话前言后语不搭,跳跃性很强:一边和别人在聊天,同时想到完全不搭的另外事:旁人聊天时却很迷惑,浑然不知我在表达什么. 当你谈话后意识到我 ...

  9. 软件测试思维总结(2)-----跳跃性思维:不按套路出牌

    软件测试思维总结(2)-----跳跃性思维:不按套路出牌 [回顾] 上一章节聊到了,测试人员安身立命的核心能力和价值,以及比较思维,本章继续聊测试探索中的思维:跳跃性思维. 回想起十年之前,还在HW做 ...

最新文章

  1. Atitit java 二维码识别 图片识别
  2. codesoft各个版本的 dll_win10安装pytorch-gpu版本
  3. java 调用软键盘_打开软键盘
  4. 由 select * 引发的“惨案”
  5. 多线程中join()的用法
  6. iText中给pdf内容添加水印
  7. java中queue的使用
  8. js中数组常用逻辑算法(从大到小,从小到大排序,去重等问题)
  9. Java中变量的初始化以及变量的初始化顺序,已经加入个人的简单理解
  10. 基于steam的游戏销量预测 — PART 3 — 基于BP神经网络的机器学习与预测
  11. 知止而后有定,定而后能静,静而后…
  12. 第10章 vim程序编辑器
  13. 必先利其器之 IDEA 磨刀好杀猪
  14. 中国大学mooc慕课题库答案怎么查,这里全有了
  15. 用余子式、代数余子式和伴随 来求逆矩阵
  16. install在python里什么意思_python setup.py install是什么意思
  17. CentOS8 yum/dnf 配置国内源
  18. 超神战记不显示服务器,《超神战记》停运公告
  19. 产品化软件开发与项目化软件开发的对比
  20. 上线文件服务器域名怎么建站,怎么做网站?建站详细流程

热门文章

  1. R语言包翻译——翻译
  2. python中demo函数是什么意思_Python函数(中)
  3. 单片机:中断系统控制二极管的亮灭
  4. 有了LIGO,引力波不仅可以被探测,还可以被发射!
  5. 从CSDN账户密码被盗说起
  6. 192.168.2.0/24后面的/24表示什么意思
  7. 选秀节目打分,分为专家评委和大众评委
  8. 30个HTML+CSS前端开发案例(完结篇)
  9. Retrofit使用简介
  10. geoerver mvt的pbf格式切片