题目描述 求所有长度为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; }