8 4 集訓日記

2021-08-04 23:38:01 字數 1064 閱讀 3179

今天看了有關組合數學的一些內容。

首先,排列組合的**為:

ll c(ll n, ll m)

ll a(ll n, ll m)

一道組合數學

+位運算的題,

[hdoj4810]wall painting

題目大意:有一位畫家,有

n種顏料,給出

n種顏料的值。然後在1到

n天中,他每天都會選擇相應天數的顏料數進行混合,形成新的一種顏料。(所選的顏料的值全部取異或後得到的數即為新顏料的值)然後對應輸出每一天有可能合成顏料值的總和。

精簡題意:有

n個數,從中選

k個數,共有c(

n,k)種選擇,將每種選擇出的

k個數異或得到的數相加輸出。

思路;首先0和

1異或是不會影響結果的,只有1和

1異或且

1的個數是奇數的時候才會對結果產生影響,所以將每個數都轉換成二進位制,統計每一位上的

1的個數,再利用組合數學解決。

**如下:

#include

#include

#include

#include

#include

#include

#include

#include

#define mod 1000003//

題目要求

using namespace std;

int bit[33];

long long c[1010][1010];

void init()//

(數字金字塔)

for(inti=2;i<1010;i++)}}

int main()

num=max(num,cnt);//這n

個數的最大位數

}for(i=1;i<=n;i++)}}

}printf(i==n?"%d\n":"%d",ans);//[?:句式]

}}return0;

}今天一直在搜知識點,位運算中的挺多寫法之前沒怎麼見過,需要繼續熟悉。看的題也挺多水題沒必要整理,所以今天就寫這乙個題解吧。以上~

8 1 集訓日記

今天看了有關容斥原理的幾篇部落格。容斥原理的基本思想是 先不考慮重疊的情況,把所有物件的數目求出,然後再把計數時重複計算的數目排斥出去,使得計算的結果既無遺漏又無重複。首先是乙個經典的互素問題 hdoj 4135 co prime 題目大意是 給定a,b,n,求區間 a,b 中與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 ...