hdu 6286 2018 題解(容斥)

2021-10-08 04:38:05 字數 878 閱讀 4784

在區間[a,b]中找乙個x,在區間[c,d]中找乙個y,問有多少對(x,y)滿足x*y是2018的倍數

這個題目的關鍵就是要發現2018只有兩個質因子就是2和1009,感覺是挺簡單的乙個容斥題目,但是如果不往這個方面去想就不知道該這麼寫

然後在區間[a,b]設x1為有多少個因子是2且不是2018的數,x2為有多少個因子是1009且不是2018的數,x3為有多少個因子是2018的數

在區間[c,d]設y1為有多少個因子是2且不是2018的數,y2為有多少個因子是1009且不是2018的數,y3為有多少個因子是2018的數

顯然答案就是x1*(y2+y3)+x2*(y1+y3)+x3*(d-c+1)+(b-a+1-x1-x2-x3)*y3

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define fi first

#define se second

#define debug printf("i am here\n");

using

namespace std;

typedef

long

long ll;

const

int maxn=

2e5+

5,mod=

2147493647

,inf=

0x3f3f3f3f

;ll a,b,c,d;

intmain()

return0;

}

hdu 4336 容斥原理

按照解題報告的提示,用容斥原理實現 for int j bg 1 j另解 概率dp,康哥指導的 include include includeusing namespace std double f 1 21 gl 22 int main int i,j,k,n double fz,fm while...

hdu4135 容斥原理

題意 給出a,b,n,求出 a,b 範圍內與n互素的數字的個數。即b範圍內的不與n互素的數減去a範圍內不與n互素的數,把 1,a 1,b 中不與n互素的數分別求出來,再減掉就是和n互素的數了。那麼首先將n分解質因數,因子和因子的倍數可以被除盡,一定不與n互素,把這些數都記下來,篩法求素數即可 然後把...

hdu 4135 容斥原理

剛接觸,有關因子個數的增加不太弄得好,然後看到了這個神奇的遞迴 ac include includeusing namespace std define ll long long ll a,b,ansa,ansb,ans,p 100 up void dfs int n,bool tag,ll num...