[HNOI 2012]三角形覆盖问题】的更多相关文章

Description 二维平面中,给定   N个等腰直角三角形(每个三角形的两条直角边分别     平行于坐标轴,斜边从左上到右下).我们用三个非负整数( x, y, d)来描   述这样一个三角形,三角形三个顶点的坐标   分别为(x, y), (x + d, y)和(x, y +     d).要求计算这   N个三角形所覆盖的总面   积.例如,下图有 3 个三角形,覆盖的总面积为 11.0.   Input 输入文件第一行为一个正整数N,表示三角形的个数.接下来的 N 行每行有用空格隔…
想象一条平行于\(y\)轴的扫描线,从低往高扫描.如何确定关键高度才能使每两个关键高度之间分割出的图形易于计算呢? 关键高度有:三角形底边高度.三角形上顶点高度.三角形交点的高度. ​ 如此分割,我们会发现,相邻两条扫描线之间的图形,是一个梯形,那么维护每条扫描线上的有效线段长度即可. 如何维护呢?用一个数组\(a_i\)表示第\(i\)格被三角形覆盖了多少次,用一个双向链表记录与每一个与当前扫描线相交的三角形的相交的部分\([l,r]\). 扫描线遇到三角形底端时,将\(a\)的\([x,x+…
题面 二维平面中,给定 \(N\) 个等腰直角三角形(每个三角形的两条直角边分别平行于坐标轴,斜边从左上到右下).我们用三个非负整数 \((x, y, d)\) 来描述这样一个三角形,三角形三个顶点的坐标分别为 \((x, y), (x + d, y)\) 和 \((x, y + d)\) .要求计算这 \(N\) 个三角形所覆盖的总面积.例如,下图有 \(3\) 个三角形,覆盖的总面积为 11.0. 输入格式: 输入文件第一行为一个正整数N,表示三角形的个数. 接下来的 \(N\) 行每行有用…
[题解]三角形 [P1222] / 三角形覆盖问题 [HNOI2012] [P3219] 传送门: 三角形 \(\text{[P1222]}\) 三角形覆盖问题 \(\text{[HNOI2012] [P3219]}\) [题目描述] 给出 \(n\) 个等腰直角三角的顶点和直角边长,求覆盖总面积. [输入] 第一行一个整数 \(n\),表示三角形个数,接下来 \(n\) 行每行三个整数 \(x,y,m\),分别表示顶点坐标.直角边长(两直角边分别平行于 \(x,y\) 轴且顶点在左下角). […
题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=2731 (luogu)https://www.luogu.org/problemnew/show/P3219 题解: 先讲一种复杂度明显不对但是本题数据跑得很快的做法: 先按底边\(y\)坐标排序,从下往上扫,每扫到一行链表维护当前的所有区间,另外再开个数组记录每个横坐标被覆盖的次数.复杂度\(O(\sum d_i)\) 然后ckw巨佬的做法: 按底边\(y\)坐标排序,找…
codevs 1477 永无乡 http://codevs.cn/problem/1477/ 2012年湖南湖北省队选拔赛  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛.如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连…
启发式合并而已啦,, 调试时发现的错误点:insert后没有splay,把要拆开的树的点插入另一个树时没有把ch[2]和fa设为null,找第k大时没有先减k,,, 都是常犯的错误,比赛时再这么粗心就得滚粗了 #include<cstdio> #include<cstring> #include<algorithm> #define read(x) x=getint() using namespace std; inline int getint(){char c;in…
题目大意:有一些岛屿,一開始由一些无向边连接. 后来也有不断的无向边增加,每个岛屿有个一独一无二的重要度,问随意时刻的与一个岛屿联通的全部岛中重要度第k大的岛的编号是什么. 思路:首先连通性一定要用并查集维护.然后就是联通快内的第k大问题,显然是平衡树.可是并查集的合并怎么搞?能够考虑按秩合并,这种话就保证每次在平衡树中处理的元素尽量的少,就能够水过这个题了. 注意一下输出-1的推断. CODE: #include <map> #include <cstdio> #include…
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #define maxn 4000 using namespace std; struct hh { int to,nxt; }b[maxn]; int head[maxn],dfn[maxn],low[maxn]; ,df=,de,k=,z,gd; bool vis[maxn],g[maxn]; void link…
Description 题库链接 对于任意一个正整数 \(n\) ,求出集合 \(\{1,2,\cdots,n\}\) 的满足约束条件"若 \(x\) 在该子集中,则 \(2x\) 和 \(3x\) 不能在该子集中"的子集的个数. \(n\leq 100000\) Solution 容易发现对于每一个与 \(2,3\) 互质的数 \(k\) ,我们构造一个 \(p\times q\) 的矩阵,该矩阵的第 \(i\) 行第 \(j\) 列表示数值 \(k\cdot 2^i3^j\) .由…