B-A Bit More Common

zfm13發表於2024-07-16

答案=至少一個子序列為1-只有一個子序列為1
顯然所有被選的數&1都是1
只有一個子序列為1的情況:答案只能是所有二進位制最低位為1的數
證:
若答案不包括A[p[i]]
則A[p[1]]&A[p[2]]&A[p[i-1]&A[p[i+1]]&A[p[i+2]]&A[p[n]]=1
因為A_p_i&1==1
所以 A[p[1]]&A[p[2]]&A[p[i-1]&A[p[i]]&A[p[i+1]]&A[p[i+2]]&A[p[n]]=1,矛盾

"特殊位"定義:
如果某一位上只有一個0=>移除0所在的數後這位與和為1,
這位叫"特殊位"

因為只有一個子序列為1的話就只有一個答案
所以任意移除都不行=>每個數都至少1個對應特殊位

dp[i][j] 表示i個數對應了j個“特殊位”且每個數至少一個特殊位的方案數
新“特殊位”兩種可能:繫結的一個新的數,繫結舊的數
既 dp[i][j] = i * (dp[i][j-1] + dp[i-1][j-1]);

設k個合法數綁了t個“特殊位”
方案數是C(n,k)[選k個&1==1的方案樹]*2((n-k)(m-1)[除了這k個隨便選{除了最低位}])*C(M-1,T)[除了最低位選出t個特殊位]*dp[k][t]*((2k-k-1)[這一位的所有選法-全1(1)-是特殊位的情況(k)]^(m-1-t)[除了特殊位和最低位])加上k=1的方案數(除了最低位全0)(n種)
最後用"至少一個子序列為1"(上一題)的方案書減去剛剛求的"只有一個子序列為1"的方案書

相關文章