時間限制: 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 ...