This commit is contained in:
Zengtudor 2024-10-04 15:36:35 +08:00
parent 0242a97e81
commit f776d8be9e

View File

@ -33,6 +33,12 @@ bitset<64+5> bt;
ReadNumber<ull> readull; ReadNumber<ull> readull;
#define cin readull #define cin readull
template<class T>
constexpr T safe_left_shift(const T t,const size_t n)noexcept{
constexpr auto sizeof_t = sizeof(t)*8;
return (n>=sizeof_t?0:t<<n);
}
int main(){ int main(){
cin>>n>>m>>c>>k; cin>>n>>m>>c>>k;
@ -53,6 +59,7 @@ int main(){
} }
} }
for(int i=0;i<k;i++)ans*=2; //此时ans=所有(未排除n个已用规则),可以用的二进制位的组合 // for(int i=0;i<k;i++)ans*=2; //此时ans=所有(未排除n个已用规则),可以用的二进制位的组合
ans = safe_left_shift(1ull, k); // 避开未定义行为
cout<<ans-n<<'\n';//注意这里要去重,基本排列组合原理 cout<<ans-n<<'\n';//注意这里要去重,基本排列组合原理
} }