POJ 3695 Rectangles 1w詢問求20個矩陣面積並 容斥
題目大意是給出若干個矩形(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