摘要:题意:给定n个矩形,每个矩形有一种颜色,RGB中的一种。相交的部分可能为RG,RB,GB,RGB,问这n个矩形覆盖的面积中,7种颜色的面积分别为多少思路:把x轴离散化做扫描线,线段树维护一个扫描区间竖直方向上的各种颜色的长度刚开始想着直接维护每段区间上7种颜色的长,但是写到删除的时候发现没办法删除,然后想了半天,发现:需要的只是整个区间的颜色长度信息,所以,对于颜色更新来说,不需要往下传标记,只需要维护上push_up就好了所以添加删除就简单多了。用 1 2 4 分别代表R G B 然后RG RB GB RGB 分别为3 5 6 7没有颜色用0来表示线段树每个节点记录下R,G,B 分别被覆盖了
阅读全文
摘要:SPOJ太慢了,SPOJ太慢了,题意:给定n(n#include #include #include using namespace std;#define maxn 10010int w[maxn],son[maxn],sz[maxn],top[maxn],fa[maxn],dep[maxn];int d1[maxn][3];int z;int n ;char str[15];struct node{ int v ,next;};node e[maxn * 2 ];int cnt ;int head[maxn];int tt[maxn * 3 ];inline void add(int...
阅读全文
摘要:这个题的灵感来自与前几天做的一个题,思路想好之后,忽然发现自己好想会做这类题目了,不过还是要折腾老久,因为好多细节处理不好。 wa了好多好多次了,终于加了个mod就过了,尼玛。。。。。。 [code lang="cpp"] i64 query(int pos) { i64 sum = 0 ; while(pos > 0 ) { sum += f[pos] %mod; pos -= lowbit(pos); } return sum; } void update(int pos,i64 val) { while(pos <= nn) { f[pos] += val
阅读全文