二进制枚举子集 CS Maxor 或运算,DP(SOS)
生活随笔
收集整理的這篇文章主要介紹了
二进制枚举子集 CS Maxor 或运算,DP(SOS)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
https://blog.csdn.net/noone0/article/details/78289517
目前沒有題目鏈接。
題意:長度為n的序列a,選出兩個元素,其或運(yùn)算結(jié)果的最大值為多少,并求出a[i]|a[j]==mx的方案數(shù)?
n<=1e5,0<=a[i]<=2^17,m<=17.
假如最大值為mx,若x|y=mx 則x和y肯定為mx的子集.否則或運(yùn)算結(jié)果肯定不為mx.
枚舉最大值 在枚舉mx的子集x. 則此時y要包含(mx-i)這個子集.(若y比mx多出某個為1的bit位 則后面最大值還會更新.)
求個數(shù),則需要知道序列中有多少個元素有子集mask=(mx-i).
F(mask) 序列中有多少個數(shù)存在一個子集為mask,暴力O(3^m)枚舉水過..
?
?
總結(jié)
以上是生活随笔為你收集整理的二进制枚举子集 CS Maxor 或运算,DP(SOS)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际油价大涨,今晚国内油价降价无望?“用
- 下一篇: 央行放大招,网贷新规正式出台,以后恐怕不