www 被大佬们|

wscqwq

园龄:2年粉丝:2关注:3

动物园

动物园

这道题的背景有些牵强,其实 qi 完全没有用。

首先,如果《饲养指南》中提到的规则在动物园已有的动物中存在,那么这种饲料一定会购买,那么就可以养 pi 位为 0/1 都可以。但是如果动物园已有的动物中不存在,那么如果新动物 pi=1 必定是要买新的饲料,那么不符合题意。综上,发现所有可以供养的动物就是所有 pi 可能的乘积。注意 264 特判,以及两条规则 pi 相等等价的判断。

#include<cstdio>
using namespace std;
#define Ls(i,l,r) for(int i=l;i<r;++i)
#define Rs(i,l,r) for(int i=r;i>l;--i)
#define L(i,l) for(int i=0;i<l;++i)
int n,m,c,k;
typedef unsigned long long ll;
bool st[70];
ll ans=1;
int main(){
    scanf("%d%d%d%d",&n,&m,&c,&k);
    ll r=0;
    L(i, n){
        ll x;
        scanf("%llu",&x);
        r|=x;
    }
    L(i, m){
        int p,q;
        scanf("%d%d",&p,&q);
        if(!(r>>p&1)&&!st[p])st[p]=1,k--;
    }
    if(k==64){
        if(!n)puts("18446744073709551616");
        else printf("%llu",-n);
    }
    else printf("%llu",(1ull<<k)-n);
    return 0;
}

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17431454.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(10)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起