题目大意

有一根长度为L的木头,这根木头上有L - 1个可以劈的点,对这根木头进行q次操作,操作有两种:操作一是往一个可劈点劈一刀,把这个点所在的木头段劈成两段;操作二是输出一个可劈点所在木头段的长度。

思路

直接用一个set存操作一所劈的点,因为set保证了所劈的点是递增的,所以对于操作二,直接用lower_bound找到第一个比要找的可劈点大的已劈点,然后lower_bound找到的位置后退一位就是第一个比要找的可劈点小的已劈点,两者相减就是该可劈点所在木头段的长度。
因为存在set中第一个已劈点比操作二的可劈点大或者set中最后一个已劈点比操作二的可劈点小的情况,所以一开始直接把0和木头长度L放到set中,这样就少了很多判断。

心得

比赛的时候一直TLE,但是方法就是set + lower_bound,最后比赛完看了一下tourist的代码,发现set本身就自带lower_bound函数,而我并不知道,直接用了algorithm库里的lower_bound,差不多一个半小时都是TLE…

#include <bits/stdc++.h>
using namespace std;typedef long long ll;set<int> s;int main()
{int len, q;scanf("%d%d", &len, &q);set<int>:: iterator it;s.insert(0);s.insert(len);while(q--){int op;scanf("%d", &op);if(op == 1){int a;scanf("%d", &a);s.insert(a);}else{int a;scanf("%d", &a);it = s.lower_bound(a);// 比赛时我的错代码...// it = lower_bound(s.begin(), s.end(), a);int r = *it;it--;int l = *it;printf("%d\n", r - l);}}return 0;
}

AtCoder Beginner Contest 217 D - Cutting Woods(set + 二分查找)相关推荐

  1. [2021-09-04 AtCoder Beginner Contest 217] 题解

    文章目录 A - Lexicographic Order B - AtCoder Quiz C - Inverse of Permutation D - Cutting Woods E - Sorti ...

  2. AtCoder Beginner Contest 217

    更新中- A - Lexicographic Order 题目大意: 给定两个字符串 S 和 T ,判断两者字典序的大小关系. 大致思路: 常规比较字典序. char[] 实现: #include & ...

  3. AtCoder Beginner Contest 217 A B C D E G 题解

    第一次6题纪念第一次6题纪念第一次6题纪念 A - Lexicographic Order 题意: s字符串的字典序是否小于ts字符串的字典序是否小于ts字符串的字典序是否小于t 思路: 模拟模拟模拟 ...

  4. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

  5. AtCoder Beginner Contest 197 题解(A ~ F)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...

  6. AtCoder Beginner Contest 198 (A ~ F)题解

    目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...

  7. AtCoder Beginner Contest 215 G - Colorful Candies 2

    AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...

  8. AtCoder Beginner Contest 215 F - Dist Max 2

    AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi​,yi​),定义两点(xi,yi),(xj,yj)(x ...

  9. AtCoder Beginner Contest 215 E - Chain Contestant

    AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...

最新文章

  1. Fragment之间传递数据的方式
  2. html全局属性什么意思,# HTML # HTML全局属性
  3. go语言基础到提高(5)-结构
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1066:满足条件的数累加
  5. 【mark】linux 终端命令行下的快捷键(自己已验证所有)
  6. LG P4074 [WC2013] 糖果公园(带修莫队,树上莫队)
  7. Spark入门(十二)之最值
  8. MIT最新课程:一文看尽深度学习各领域最新突破(附视频、PPT)
  9. 深入理解Spring Redis的使用 (九)、通过Redis 实现 分布式锁 的 BUG,以及和数据库加锁的性能测试...
  10. ---M文件-函数式M文件/脚本式、m文件基本构成
  11. Oracle 11g 字符集修改
  12. ActiveMQ 无法启动 提示端口被占用 解决方案
  13. Windows安装JDK
  14. 到底是什么决定了路由器的信号强弱和穿墙能力?
  15. TS合并TS文件解码TS文件解密TS解码工具
  16. Map与数组、对象之间的转换
  17. 比特率控制模式ABR、VBR、CBR
  18. Java中输入一个整形数组,输出其最大值。
  19. Nature综述:一文揭秘土壤微生物的生死过程如何影响生物地球化学
  20. 貌似淘宝下拉PopWindow筛选【动画、列表、位置】

热门文章

  1. 代码随想录1刷—贪心算法篇(二)
  2. 冰冰学习笔记:进程概念
  3. 抽象abstract和接口详解
  4. word拼写检查自定义词典下载_使用自定义词典进行拼写检查
  5. 助力工业物联网,工业大数据之一站制造业务主题划分【十三】
  6. 甲方提供的工程量清单,(施工方)我方与甲
  7. 利用腾讯云独立IP使用windows用CCProxy搭建多IP代理服务器图文教程实现单窗口单IP
  8. 中冠百年|家庭长期理财的四个方法
  9. Handler源码分析(超详细的)
  10. macbook pro 16寸悄然上架 你会不会买呢