题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。 答案对1e9+7取模。

输入描述: 输入一个n。

输出描述: 输出答案对1e9+7取模

#include<bits/stdc++.h> #define max(a,b) a>b?a:b #define min(a,b) a<b?a:b using namespace std ; typedef long long ll; typedef unsigned long long ull; const ll MOD = 1e9+7; ll my_pow(ll x, ll p){     ll ret = 1 ;     while(p>0){         if(p&1)             ret = ret*x%MOD;         x = x*x%MOD;         p>>=1;     }     return ret ; } int main(){     ll n;     cin>>n;     if(n<=1) cout<<"0"<<endl;     else if(n==2) cout<<"1"<<endl;     else{         ll ans = ((my_pow(2,n-3)*(n%MOD)%MOD)*((n-1)%MOD)%MOD);          cout<<ans<<endl;     };     return 0; }