Heim > Datenbank > MySQL-Tutorial > [U]3.2.2 Stringsobits 组合,递推

[U]3.2.2 Stringsobits 组合,递推

WBOY
Freigeben: 2016-06-07 15:38:53
Original
1013 Leute haben es durchsucht

很快就发现了这题的递推特性。简直是赤裸裸啊~ 定义一个数组( [串长度][串中'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>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage