国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[bzoj4269]再見xor

2019-11-08 18:42:39
字體:
來源:轉載
供稿:網友

題目大意

n個數任取進行異或,求最大值與嚴格次大值

線性基

第一次寫線性基www 弄出線性基后可以得到最大值。 接下來我們從小到大枚舉次大值在哪一個位與最大值不一樣,比如在i位,那么比i位高的要與最大值進行一樣的選擇,而第i位與最大值進行不一樣的選擇,比i位低的需要最大化,最后判定如果是嚴格比最大值小就可以退出,這一定是嚴格次大值。

#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;int a[40],b[40];int i,j,k,l,t,n,m,ans,num;int main(){ scanf("%d",&n); fo(i,1,n){ scanf("%d",&t); fd(j,31,0){ if ((t&(1<<j))!=0){ if (!a[j]){ a[j]=t; break; } t^=a[j]; } } } fd(i,31,0){ if ((ans&(1<<i))==0){ ans^=a[i]; b[i]=1; } }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 项城市| 辉县市| 始兴县| 大英县| 凌源市| 筠连县| 岱山县| 朝阳区| 永修县| 大理市| 新田县| 温宿县| 息烽县| 敦煌市| 屏东县| 汽车| 河曲县| 香河县| 交口县| 碌曲县| 芷江| 高安市| 津南区| 石台县| 横山县| 鄂伦春自治旗| 余江县| 锦屏县| 大荔县| 镇赉县| 广河县| 延安市| 马公市| 和平县| 绵阳市| 太原市| 石台县| 铁力市| 平阴县| 固镇县| 得荣县|