update
This commit is contained in:
parent
2003de2e1b
commit
bf9dc139db
@ -36,22 +36,22 @@ ReadNumber<ull> readull;
|
||||
int main(){
|
||||
cin>>n>>m>>c>>k;
|
||||
|
||||
if(n==0 && m==0 && k==64){
|
||||
if(n==0 && m==0 && k==64){ //特判
|
||||
cout<<"18446744073709551616\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
for(ull i=0;i<n;i++){
|
||||
cin>>input;
|
||||
num |= input;
|
||||
num |= input; //所有编号占用的'1'的位置,把他并在一起
|
||||
}
|
||||
for(ull i=0;i<m;i++){
|
||||
cin>>p>>q;
|
||||
if(!((num>>p)&1) && !bt[p]){
|
||||
if(!((num>>p)&1) && !bt[p]){ //已有的n个编号里面没有出现过的规则,并且还未标记,bt用来去重
|
||||
k--;
|
||||
bt[p]=true;
|
||||
}
|
||||
}
|
||||
for(int i=0;i<k;i++)ans*=2;
|
||||
cout<<ans-n<<'\n';
|
||||
for(int i=0;i<k;i++)ans*=2; //此时ans=所有(未排除n个已用规则),可以用的二进制位的组合
|
||||
cout<<ans-n<<'\n';//注意这里要去重
|
||||
}
|
Loading…
Reference in New Issue
Block a user