8 1 集訓日記

2021-08-04 18:28:54 字數 619 閱讀 6790

今天看了有關容斥原理的幾篇部落格。

容斥原理的基本思想是:先不考慮重疊的情況,把所有物件的數目求出,然後再把計數時重複計算的數目排斥出去,使得計算的結果既無遺漏又無重複。

首先是乙個經典的互素問題[hdoj 4135 co-prime]

題目大意是:給定a,b,n,求區間[a,b]中與n互素的數的個數。

思路是:先將n的所有素因子求出,然後求區間[1,a]中與n具有公因子的數的個數,然後用[1,b]減去[1,a-1]。

**如下:

#include

#include

#include

#include

#include//佇列

#include//棧

#include

#include

using namespace std;

long long p[100],k;

void getp(long long n)//求出n的所有素因子 放入p[i]

if(n>1)  

p[k++]=n;  

}  long long nop(long long m)  //nop(m)得到的是區間[1,m]中所有與n具有公因子的數的個數}}

以上~

8 4 集訓日記

今天看了有關組合數學的一些內容。首先,排列組合的 為 ll c ll n,ll m ll a ll n,ll m 一道組合數學 位運算的題,hdoj4810 wall painting 題目大意 有一位畫家,有 n種顏料,給出 n種顏料的值。然後在1到 n天中,他每天都會選擇相應天數的顏料數進行混合...

8 9 集訓日記

今天才知道好像要發好幾十篇部落格之後才不用審核 今天把數論的課件看了看,算是再複習一遍,掌握的更好吧。都是之前學過的內容,只是有些記不清的,也沒什麼好寫的,這裡整理一下位運算的課件吧。位運算 一 位運算子及規則1 按位與 全真則真 一假則假2 按位或 一真則真3 按位異或 同則假 異則真4 左移5 ...

8 10 集訓日記

今天上午看了有關單調佇列的課件,明天一起整理。下午做了練習賽,在這兒寫一下ac的三道題。b題,很水的一道題,求數字金字塔中經過數字的最大和。ac 及註解如下 include using namespace std int a 351 351 int main for int i n 1 i 1 i ...