我用的是容斥+预处理
可以看一下套路和这题差不多:
http://codeforces.com/contest/851/problem/D