D Knapsack Cryptosystem 2019牛客多校第9场

传送门:https://ac.nowcoder.com/acm/contest/889/D

这算是经典套路了,分成两半匹配,15年学hash的时候,好多poj的题就是问有没有a+b+c+d=0这种类型的。

那么这题一样,分成两半,前一半的所有情况排个序,再枚举后一半的每一种情况能不能跟前一半的某一种情况加起来恰好等于s

答案就是状压的数字。

#include
#define maxl 20
using namespace std;
 
int n,m,tot,cnt;
int dy[(1<=1;i--)
        scanf("%lld",&a[i]);
    for(int i=m;i>=1;i--)
        scanf("%lld",&b[i]);
}
 
inline bool cmp(const node &x,const node &y)
{
    return x.val=0;i--)
        printf("%lld",((ans>>i)&1));
    puts("");
}
 
int main()
{
    for(int i=0;i<=19;i++)
        dy[1<

 

你可能感兴趣的:(状态压缩)