十分不理解错了3个点
查看原帖
十分不理解错了3个点
756529
progress_from0楼主2022/10/22 14:51
#include<bits/stdc++.h>
#define lll long long
using namespace std;
int n,l,I,ll,nn;
lll dp[35][35];

int main(){
	cin>>n>>l>>I;
	for(int i=1;i<=n;i++){
		dp[0][i]=dp[i][0]=1;
		dp[1][i]=2;
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=l;j++){
			if(j<=i)dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
			else dp[i][j]=dp[i][i];
			
		}
//		if(flag){
//			break;
//		}
	}
	ll=l;
	nn=n;
	while(nn){
		if(I>dp[nn-1][ll]){
			cout<<1;
			I-=dp[nn-1][ll];
			ll--;
			nn--;
		}
		else{
			cout<<0;
			nn--;
		}
	}
	cout<<endl;
	return 0;
} 
/*
cin>>
31 31 2147483648
cout<<
1111111111111111111111111111111
1111111111111111111111111111110(这是我的QAQ)
*/
2022/10/22 14:51
加载中...