CKOJ 1072 簡單的問題 組合數學

2021-08-18 17:02:43 字數 1078 閱讀 9751

時間限制: 1 sec  記憶體限制: 128 mb

提交: 21  解決: 5 [

提交][

狀態][

討論版]

這個問題太簡單了以至於出題人想不到什麼捏造什麼背景了(腦洞缺失

那就讓我們直奔主題吧:

給你乙個n,你能否知道,在[0,n)中,有多少數的二進位制表示中1的個數和n的二進位制表示中1的個數是一樣多的?

輸入:第一行乙個t,表示有t組資料

其後t行,每行乙個整數,代表n

輸出:n行每行乙個整數,代表[0,n)中二進位制表示中1的個數和n的二進位制表示中1的個數一樣多的數的個數。

樣例1:

input

output

//解釋:沒有比三小的正整數的二進位制表示有兩個1

樣例1:

input

output

//解釋:2 和 1 滿足要求

資料範圍:

對於30%的資料,t<=10,n<=1e5

對於40%的資料,t<=30,n<=1e6

對於50%的資料,t<=100,n<=1e6

對於100%的資料,t<=1000,n<=1e16

cy1999

先將數字轉化為2進製。例如:100010010

1、將第乙個1後移,那麼就是後面8個位置中放入3個1.有c(8,3)種方案。

2、第乙個1不動,第二個1後移,有c(4,2)種方案。

3、前兩個1不動,第三個1後移,有c(1,1)種方案。

#includeusing namespace std;

#define maxn 100005

#define inf 0x3f3f3f3f

int a[100];

long long c[100][100];

long long n;

int main()

}while(t--)

long long ans=0,one=0;

for(int i=0;i}

printf("%lld\n",ans);

}return 0;

}

9 簡單組合問題

對於有 m個元素的集合,在元素能重複取的情況下,我們可以得到有 r 組合的集合 例如,當 m 2,r 4 時,集合 可以劃分為 5 個不同的 r 組合的集合 輸入 輸入資料有多組,每行輸入 2 個整型資料 m,r 0思路 題目中只要求組合,各個符號出現的先後順序不做考慮,是無關的。result 3,...

九度OJ 1072 有多少不同的面值組合

題目1072 有多少不同的面值組合?時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 2690 解決 1384 題目描述 某人有8角的郵票5張,1元的郵票4張,1元8角的郵票6張,用這些郵票中的一張或若干張可以得到多少種不同的郵資?輸入 題目沒有任何輸入 輸出 按題目的要求輸出可以得到的不...

一些簡單的排列組合問題

排列及計算公式 從n個不同元素中,任取m m n 個元素按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的乙個排列 從n個不同元素中取出m m n 個元素的所有排列的個數,叫做從n個不同元素中取出m個元素的排列數,用符號 a n,m 表示或 p n,m 表示。a n,m n n 1 n 2 ...