jzoj5862 孤獨 容斥

2021-08-27 16:20:49 字數 964 閱讀 9348

沒看懂題意( •_•)以為每個人只能聊天一次,語文水平被教育了

考慮容斥。我們只需要列舉n位二進位制s,計s為a[i]子集的數量為cnt,那麼貢獻就是(−

1)x×

cntk

( −1

)x×c

ntk,其中x為二進位制s中1的數量

於是乙個o(

2n×m

) o(2

n×m)

的暴力是70分

我們觀察可以發現每個a只會使它子集的cnt改變,於是我們列舉所有a的子集然後記cnt[x]為含有x這個子集的a的數量,然後就可以過了

我一開始

#include 

#include

#define rep(i,st,ed) for (int i=st;i<=ed;++i)

typedef

long

long ll;

const

int mod=1000000007;

const

int n=1000005;

int n,m,k;

int a[n],cnt[1048580];

ll ans=0;

int read()

ll ksm(ll x,ll dep)

return ret;

}void dfs(int dep,int s,ll c)

dfs(dep+1,s,c);

dfs(dep+1,s|(1

<1),-c);

}int main(void)

}*/ dfs(1,0,-1);

printf("%lld\n", ans);

return

0;}

NYOJ 586 瘋牛 二分

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...

586 瘋牛(二分查詢 貪心)

農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間裡,他們就要發生爭鬥。為了不讓牛互相傷害。john決定自己給牛分配隔間,...

瘋牛 nyist586 二分答案

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...