学习容斥原理 – _LinesYao

学习容斥原理 – _LinesYao

容斥原理是结成=mathematics办法,可以解集、复合事情的概率。

原理作为示范:

几组一致集的堆积起来计算,率先计算自己人细目集的堆积起来。,从和睦中减去自己人两个集中,相加三组和睦做切片,从四组和睦做切片中减去,以及诸如此类,老是计算自己人集切中要害做切片和睦 。

维都表:

这里写图片作为示范

这里写图片作为示范

概率论:

事情AI(I=1),…,n),P(Ai)发作呼应事情的概率。反正单独事情的概率:
这里写图片作为示范

容斥原理的验证:

这里写图片作为示范

B是Ai的单独保藏。

防备任性单独元素在k ai集中中(k>=1),验证该元素只添加一次。:

size(C)=1,这事元素附带说明k次。

size(C)=2,添加元素(- 1)^(2-1) C(k,2)次

size(C)=3,添加元素(- 1)^(3-1) C(k,3)次

size(C)=k,添加元素(- 1)^(k-1) C(k,k)次

size(C)>k,这事元素被添加了0次。

总次数:
这里写图片作为示范


codeforces gym 101350G

题意:塌下n*m的矩形,有K炸弹(K)<20),求出不牵制炸弹的矩形的总总计。

思绪:K炸弹的音量独特的小。,可使用推斥,该处置仅牵制i(i=1)。,2,…,k)炸弹(详表任性i炸弹),处置牵制I炸弹的最小矩形。,声调处置。)

#include
using namespace std;
typedef long long ll;
const int N=55;
#define SA(x) SCANF(%D),&x)
#define PR(X) printf("%d\n",x)
#define 德(X) cout<<#x<<" = "<
//--------------------------------------//
ll x[N],y[N];
ll n,m;
int k;
ll solve() {
    ll x1,x2,y1,y2,ans=0;
    为(int) i=1;i<(1<

hdu 4135

题意:区间〔A〕,B]和N切中要害数字总计。

思绪:N聚集除数讲解。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;
typedef long long ll;
const int N=1000005;

#define 德(X) cout<<#x<<" = "<
//--------------------------------------//

ll p[N];
int main() {
    int T,cas=0; SCANF(%D),&T);
    ll a,b,r,ans1,ans2;
    而(t) {
        scanf("%I64d%I64d%I64d",&a,&b,&r);
        int pcnt=0;
        ans1=ans2=0;
        --a;

        为(ll) i=2;i*i<=r;++i) {//对r质因数讲解
            if(r%i==0) {
                p[pcnt++]=i;
                while(r%i==0) r/=i;
            }
        }
        if(r>1) p[pcnt++]=r;

        为(int) i=1;i<(1<

发表评论

电子邮件地址不会被公开。 必填项已用*标注

© 2018 网络博彩公司