容斥
青烟绕指柔!
我不怕千万人阻挡,只怕自己投降。
展开
-
完全平方数
题目链接:完全平方数首先可以想到二分。然后我们对于 2 的完全平方数来说,全部计算即可,3也同理。但是对于6来说,被计算了2次,所以需要减去。然后对于4来说,已经被2计算过了,跳过即可。其实我们不难发现,这就是莫比乌斯函数。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long longusing namespace std;const i原创 2021-01-14 12:10:02 · 179 阅读 · 0 评论 -
CTOI10D2 - PIN
题目链接:CTOI10D2 - PIN我们枚举几个位置固定相等,然后其他位置不管,然后算出方案数。但是我们会发现计算重复了,比如3个位置一样会包含4个位置一样的。需要容斥掉。假设对于3个位置一样,因为对于某种3个位置的选择,会多计算一次4个位置的,然后有4种3个位置的,所以减去4倍的4个位置相同的方案数。对于2个位置一样,对于某种2个位置一样的选择,会有2种3个位置的,然后有6中2个位置的,然后3个位置的有4种,所以需要减去 2 * 6 / 4 种3个位置的方案数。其他同理。AC代码:#p原创 2021-01-06 15:28:30 · 108 阅读 · 0 评论 -
Codeforces - Lengthening Sticks
题目链接:Codeforces - Lengthening Sticks正难则反。我们直接计算不合法的方案。总方案我们可以看成是一个可以放0 的隔板法。 C(x+2,2)然后不合法的,我们直接看a>=b+c,b>=a+c,c>=a+b分别计算即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long longusing n原创 2020-06-17 20:10:07 · 180 阅读 · 0 评论 -
红色的幻想乡
题目链接:红色的幻想乡因为起点不会被覆盖,所以其实是再暗示我们分别按照x,y建立一颗线段树。然后区间求出有多少x,y。然容斥计算即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long longusing namespace st...原创 2020-03-29 12:05:12 · 229 阅读 · 0 评论 -
[USACO17FEB]Why Did the Cow Cross the Road III G
题目链接:[USACO17FEB]Why Did the Cow Cross the Road III G直接容斥计算即可,总方案减去不合法的。什么是不合法呢?无交点,或者包含关系。用两个Fenwick维护一下左右端点即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++....原创 2020-03-29 11:35:37 · 261 阅读 · 0 评论 -
HDU - 5792
题目链接:HDU - 5792我们可以用容斥的思想,先统计上升的二元组和下降的二元组。然后再减去a,b,c,d当中重合的情况。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;...原创 2020-03-12 13:09:05 · 194 阅读 · 0 评论