usaco Stringsobits
生活随笔
收集整理的這篇文章主要介紹了
usaco Stringsobits
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
dp好理解,下面的輸出第i打個數(shù)是在太巧妙了。dp[i][j]表示i位上1個數(shù)少于j的個數(shù)。
假設求第t大的數(shù)。
當t>dp[i-1][j]的時候,假如第i位是0后面怎么湊都出湊不到t個出來。如果第i位是1他肯定比第i位時0的dp[i-1][j]個數(shù)大所以我們只要再找t-dp[i][j]大的數(shù)就可以了以此類推
/*
ID: jinbo wu
LANG:C++
TASK:kimbits
*/
#include<bits/stdc++.h>
using namespace std;
int dp[35][35];
int main()
{freopen("kimbits.in","r",stdin);freopen("kimbits.out","w",stdout);long long n,l,i;cin>>n>>l>>i;for(int j=0;j<=n;j++){dp[j][0]=dp[0][j]=1;}for(int j=1;j<=n;j++)for(int k=1;k<=n;k++)dp[j][k]=dp[j-1][k-1]+dp[j-1][k];for(int j=n;j>=1;j--){if(i>dp[j-1][l]){cout<<1;i-=dp[j-1][l];l--;}elsecout<<0;}cout<<endl;
}
總結(jié)
以上是生活随笔為你收集整理的usaco Stringsobits的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “风景触乡愁”下一句是什么
- 下一篇: 微信网名大全男生霸气