P4097 [HEOI2013]Segment

    • 423通过
    • 1.2K提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 块状链表,块状数组,分块 整体二分 线段树 贪心 递归 各省省选 2013 河北
  • 难度 省选/NOI-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    要求在平面直角坐标系下维护两个操作:

    1. 在平面上加入一条线段。记第 i 条被插入的线段的标号为 i
    2. 给定一个数 k,询问与直线 x = k 相交的线段中,交点最靠上的线段的编号。

    输入输出格式

    输入格式:

    第一行一个整数 n,表示共 n 个操作

    接下来 n 行,每行第一个数为 0 或 1

    若该数为 0,则后面跟着一个正整数 k,表示询问与直线 x = ((k + lastans – 1)%39989+1)相交的线段中交点(包括在端点相交的情形)最靠上的线段的编号,其中%表示取余。若某条线段为直线的一部分,则视作直线与线段交于该线段 y 坐标最大处。若有多条线段符合要求,输出编号最小的线段的编号

    若该数为 1,则后面跟着四个正整数 x0, y0, x1, y1,表示插入一条两个端点为 ((x0+lastans-1)%39989+1,(y0+lastans-1)%10^9+1)和 ((x1+lastans-1)%39989+1,(y1+lastans-1)%10^9+1) 的线段

    其中 lastans 为上一次询问的答案。初始时 lastans=0

    输出格式:

    对于每个 0 操作,输出一行,包含一个正整数,表示交点最靠上的线段的编 号。若不存在与直线相交的线段,答案为 0

    输入输出样例

    输入样例#1: 复制
    6 
    1 8 5 10 8 
    1 6 7 2 6 
    0 2 
    0 9 
    1 4 7 6 7 
    0 5
    输出样例#1: 复制
    2 
    0 
    3

    说明

    对于 30%的数据,n ≤ 1000
    对于 100%的数据,1 ≤ n ≤ 10^5, 1 ≤ k, x0, x1 ≤ 39989, 1 ≤ y0 ≤ y1 ≤ 10^9

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。