?
题目大意是给出若干个矩形(n <= 20) 然后m个询问(m <= 100000)
每个询问会给出一些矩形的编号,问这些矩形的面积并有多大
谈到矩形并,也许第一反应都是线段树
但是此题有一个特点,就是n非常小,m却非常大
用线段树很有可能会不行
于是换个思路,n很小,我们可以把所有的可能组合情况都考虑到,然后呢预处理出来,这样询问时就是O(1)的查询了
但是1<<20显然是远大于100000的
也就是说我们没必要把所有情况都考虑到。
只需要考虑这m个询问中的情况就可以了
于是我们先把询问中情况都读进来,用二进制存起来。
然后就是DFS,根据容斥原理
一个矩形的面积-二个矩形相交的面积+三个矩形相交的面积。。。。。。就这样
所以DFS中可以有两种分支,一种是拿这个矩形,另一种是不拿
?
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
?