update
This commit is contained in:
parent
0242a97e81
commit
f776d8be9e
@ -33,6 +33,12 @@ bitset<64+5> bt;
|
||||
ReadNumber<ull> 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(){
|
||||
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';//注意这里要去重,基本排列组合原理
|
||||
}
|
Loading…
Reference in New Issue
Block a user