国产探花免费观看_亚洲丰满少妇自慰呻吟_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; } }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江津市| 康定县| 清流县| 利辛县| 高雄市| 个旧市| 康定县| 健康| 咸宁市| 特克斯县| 瑞昌市| 双城市| 桐柏县| 光山县| 阜南县| 砀山县| 延川县| 衡山县| 大荔县| 明水县| 聂荣县| 修水县| 宜阳县| 米脂县| 深州市| 呈贡县| 桦川县| 红安县| 汕尾市| 谢通门县| 古蔺县| 镇巴县| 晴隆县| 沅江市| 铜鼓县| 日土县| 阿坝| 吉林市| 祁门县| 仙居县| 福安市|