什么,扫描线需要线段树? 那我第一个不干啊(其实是不会写) 这里介绍一种裸的扫描线: 我们根据x排序,对于相等的 \(x\) ,将 \(y\) 进入和退出分类讨论,然后全部放进set里面.每次 \(x\) 不相等的时候,答案就是 (现在y覆盖的乘以(现在的x-以前的x)) 具体的判断方法: 1.y的判断: 将每个长方形的上方点记做出口,下方点记做入口.用一个set记录在某区间内所有的 \(y\) 值.每次从下往上扫,如果某个y是入口就将 \(sz\) +1,否则就将 \(sz\) -1.如果 \…
Description 在一个笛卡尔平面坐标系里(则X轴向右是正方向,Y轴向上是正方向),有\(N(1<=N<=1000)\)个矩形,第i个矩形的左上角坐标是\((x1, y1)\),右下角坐标是\((x2,y2)\).问这\(N\)个矩形所覆盖的面积是多少?注意:被重复覆盖的区域的面积只算一次. Input 第一行,一个整数N. \((1<=N<=1000)\). 接下来有\(N\)行,每行描述一个矩形的信息,分别是矩形的\(x1.y1.x2.y2\). 其中 \(−10^8&l…
题目链接 [洛谷传送门] 题解 矩阵面积的并模板.(请求洛谷加为模板题) 很明显是要离散化的. 我们将矩阵与\(x\)轴平行的两个线段取出来.并且将这两个端点的\(x1\)和\(x2\)进行离散化. 因为每一次我们都会对当前的这一层的某一段线段进行操作,那么就用权值线段树维护是否存在. 这个只是矩阵面积的并. 还有加强版:[HDU 1542] 还有矩阵面积的交. 代码 #include <bits/stdc++.h> #define gc getchar #define lc (nod <…
一种矩形切割的做法: 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int maxn=1005; 5 struct node{//矩形的结构体 6 LL x1,y1,x2,y2; 7 }a[maxn]; 8 int n,cnt=0; 9 10 void Cut(LL id,LL x1,LL y1,LL x2,LL y2){//矩形切割 11 LL k1,k2,k3,k4; 12…
P2519 [HAOI2011]problem a 题目描述 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) 输入输出格式 输入格式: 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi 输出格式: 一个整数,表示最少有几个人说谎 输入输出样例 输入样例#1: 复制 3 2 0 0 2 2 2 输出样例#1: 复制 1 说明 100%的数据满足: 1≤n≤100000 0≤ai…
usaco银组解题报告 一.石子游戏如果把‘O’当作0,‘X’当做1,则N个洞的每一种状态都可以看做是一个N位二进制数.于是,这个问题就变成了求环绕的N位格雷码.幸运的是,这个结构很容易就能够用一个简单的递归式计算出来.假设我们有一组K位格雷码序列,第一个为K个0. 我们可以复制这个格雷码序列,并将其倒序,然后将它加在原来的格雷码序列之后.现在,在原来的格雷码序列中的每个数之前都加上数字0,而在复制的序列中每个数的前面都加上1.然后,结果序列就将称为一个有效的k+1位的格雷码.这儿是一个K=2的…
P1821 [USACO07FEB]银牛派对Silver Cow Party 题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way roads co…
题目链接:https://www.luogu.org/problemnew/show/P1821 反向多存一个图,暴力跑两遍 #include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <cstring> using namespace std; ; const int inf = 0x7fffffff; int n, m, x, dis…
1,MooBuzz 这题其实是道数学题. 我们先找找符合要求的数:1,2,4,7,8,11,13,14…… 我们发现再往后找都是这8个数中的一个加15k如:16……19……29…… 找规律发现k=n/8 ans=15*n/8+a[n%8](a[] = {14,1,2,4,7,8,11,13}) 可我们发现n是8的倍数时会出错,特判一下当n%8==0时ans=15*n/8-1即可 #include <iostream> #include <cstdio> using namespac…
题目描述 Farmer John has noticed that his cows often move between nearby fields. Taking this into account, he wants to plant enough grass in each of his fields not only for the cows situated initially in that field, but also for cows visiting from nearby…