Rumah > pangkalan data > tutorial mysql > [U]3.2.2 Stringsobits 组合,递推

[U]3.2.2 Stringsobits 组合,递推

WBOY
Lepaskan: 2016-06-07 15:38:53
asal
1012 orang telah melayarinya

很快就发现了这题的递推特性。简直是赤裸裸啊~ 定义一个数组( [串长度][串中'1'的个数]=种类数 )这就是一个排列啊~ 用一个简单的递推方程求解出来C(n,i)=C(n-1,i)C(n-1,i-1); 然后从首位n开始判断,∑C[n-1][i] ( i∈[0,l] ) 若和大于等于当前的第k个数则说明

很快就发现了这题的递推特性。简直是赤裸裸啊~

定义一个数组(  [串长度][串中'1'的个数]=种类数  )这就是一个排列啊~

用一个简单的递推方程求解出来C(n,i)=C(n-1,i)+C(n-1,i-1);

然后从首位n开始判断,∑C[n-1][i] ( i∈[0,l] )

若和大于等于当前的第k个数则说明,右边的n-1位足够提供题中所需的数量,因此当前位为'0';

若右边n-1位不能提供所需的数量,则当前位为'1',右边必须向n借一位,这样k-=cnt;把右边的和减去。提供的l--;

蛮有意思的一题:

Code:

/*
ID:bysen
LANG:C++
PROG:kimbits
*/
#include<stdio.h>
using namespace std;

int C[32][32];

int main()
{
 	freopen( "kimbits.in","r",stdin );
 	freopen( "kimbits.out","w",stdout );
 	int n,l;
	long long k;
 	scanf( "%d %d %lld",&n,&l,&k );
 	for( int i=0;i=1;i-- )
	{
	 	 int cnt=0;
	 	 for( int j=0;j<br>
<br>



</stdio.h>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan