update
This commit is contained in:
parent
0242a97e81
commit
f776d8be9e
@ -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';//注意这里要去重,基本排列组合原理
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user