[题解]POJ3304 Segment】的更多相关文章

题面 题解 李超线段树 为了与机房大佬 HYJ 同步伐 学习笔记请移步 yyb的博客 Code #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <cmath> const int N = 100005; const int mod = 39989; #define val(id, x) (k[id] * x + b[id]…
3165: [Heoi2013]Segment Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 668  Solved: 276[Submit][Status][Discuss] Description 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段.记第i条被插入的线段的标号为i. 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号. Input 第一行一个整数n,表示共n 个操作. 接下来n行,每行第一…
题意简述 原题LightOJ 1240,Point Segment Distance(3D). 求三维空间里线段AB与C. 题解 我们设一个点在线段AB上移动,然后发现这个点与原来的C点的距离呈一个单峰状,于是珂以三分. 三分的时候处理一下,把A点坐标移动到(0,0,0)珂以方便操作. 代码 #include <cstdio> #include <cmath> namespace fast_IO{ const int IN_LEN = 10000000, OUT_LEN = 100…
[题目描述] For an array, we can build a Segment Tree for it, each node stores an extra attribute count to denote the number of elements in the the array which value is between interval start and end. (The array may not fully filled by elements) Design a…
题意:给一个16进制8位数,给定每个数字的贡献,问你贡献和. 思路:数位DP,想了很久用什么表示状态,看题解说用和就行,其他的都算是比较正常的数位DP. 代码: #include<iostream> #include<stdio.h> #include<cmath> #include<string> #include<queue> #include<set> #include<vector> #include<str…
原题传送门 这珂以说是李超线段树的模板题 按着题意写就行了,时间复杂度为\(O(n\log^2n)\) #include <bits/stdc++.h> #define N 40005 #define db double #define getchar nc using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fre…
Problem 题目概要:给定一棵 \(n\) 个节点的树,点有点权,进行 \(m\) 次路径取\(\max\)的操作,最后统一输出点权 \(n\leq 10^5,m\leq 5\times 10^6\) Thoughts 今天闲来无事想到的题目,然后就出出来了 我的做法复杂度是\(O(n\log n+m)\),想把\(O(m\log m)\)卡掉,于是一开始把 \(m\) 开到了\(10^7\),后来发现由于常数过大,导致需要跑\(7s\) 虽然其他做法都跑不出来,然后就把数据开小到\(5\t…
http://poj.org/problem?id=3304 题目大意:给n条线段,求是否存在一条直线,将所有线段投影到上面,使得所有投影至少交于一点. ———————————————————————————— 首先考虑当情况可能时,过相交点做垂线,则垂线一定与所有线相交. 所以就变成了求是否存在一条直线,使得直线和所有直线都相交的问题了. 显然如果存在这样的线,那么至少有一种情况,这样的线的两个端点是其中两条直线的任意两个端点. 那么枚举两个端点判断即可. https://www.cnblog…
https://www.lydsy.com/JudgeOnline/problem.php?id=3165 https://www.luogu.org/problemnew/show/P4097 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段.记第i条被插入的线段的标号为i. 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号. 李超线段树板子题,参考代码:https://zepto.blog.luogu.org/solution-p4097 李超线段树…
题意:给出\(n\)个形如\([l,r]\)的线段.\(m\)次询问,每次询问区间\([x,y]\),问至少选出几条线段,使得区间\([x,y]\)的任何一个部位都被至少一条线段覆盖. 首先有一个显然的贪心,设询问区间为\([l,r]\),则所取的区间最靠左的一个的左端点必定小于等于\(l\),并且要使这个区间尽可能地向右延伸. 取完第一个之后,重复以上的贪心,直至满足条件,那么这样的答案必定是最小的. 但是这样的时间复杂度是\(O(nm)\)的,所以要考虑优化,优化方法是用倍增,每次向右跳\(…