求助关于
查看原帖
求助关于
246331
mystic_qwq楼主2024/7/26 19:40
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,l,i,C[32][32],sum[32][32],a[32];
void dfs(int l,int c,int k){
  if(!l) {
    for(int i=n;i;--i) cout<<a[i];
    cout<<'\n'; exit(0);
  }
  if(k<=sum[l-1][c]) return dfs(l-1,c,k);
  else return k-=sum[l-1][c],a[l]=1,dfs(l-1,c-1,k);
}
main(){
  for(int i=0;i<32;++i){
    C[i][0]=1,sum[i][0]=1;
    for(int j=1;j<=i;++j){
      C[i][j]=C[i-1][j]+C[i-1][j-1];
      sum[i][j]=sum[i][j-1]+C[i][j];
    }
  }
  /*for(int i=0;i<32;++i)
    for(int j=0;j<32;++j)
      for(int k=0;k<=j;++k)
        sum[i][j]+=C[i][k];*/
  cin>>n>>l>>i;
  dfs(n,l,i);
}

求助:为何下面代码是对的,上面 sumsum 求法,就是错误的

2024/7/26 19:40
加载中...