日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Description

Input

第一行一個整數(shù) n,表示數(shù)的個數(shù)。
第二行n個整數(shù),第i個整數(shù)為ai 。

Output

n行一個整數(shù)表示答案,第i行表示序列第i個前綴的帥氣值。

Sample Input

5
1 2 3 4 5

Sample Output

1
3
6
10
9

Data Constraint

對于50%的數(shù)據(jù),N<=6666
對于100%的數(shù)據(jù), N<=456789,0<=ai<=10^6

Solution

  • 設前綴異或和為 s[i]s[i]s[i] ,則題目相當于求對于每個 iii 的:(s[i]xors[j])+s[j],j&lt;i(s[i]\ xor\ s[j])+s[j]\ ,\ j&lt;i(s[i]?xor?s[j])+s[j]?,?j<i

  • 我們枚舉 s[i]s[i]s[i] 的每個二進制位,發(fā)現(xiàn)如果為 111 則對答案無影響,

  • 如果為 000s[j]s[j]s[j] 的這一位一定為 111 更優(yōu)(貪心思想)。

  • 為了知道 iii 前面有沒有一個 s[j]s[j]s[j] 能滿足條件,我們設一個 f[i]f[i]f[i] 表示滿足 iiis[j]s[j]s[j] 子集的最小的 jjj

  • 從高位到低枚舉二進制位 kkk ,只要滿足 f[s∣2k]≤if[s|2^k]\leq if[s2k]i 則說明這位能選 111 ,并 s+=2ks+=2^ks+=2k

  • 這樣一直做下去就能求出答案了。

  • 對于 f[i]f[i]f[i] 的話我們可以開始時預處理出來:

  • 初值:f[s[i]]=min(f[s[i]],i)f[s[i]]=min(f[s[i]],i)f[s[i]]=min(f[s[i]],i)

  • 轉移的話不需要直接枚舉子集,

  • 我們從大到小枚舉 sss ,再枚舉狀態(tài) sss 中是 111 的位,將其變?yōu)?000 ,轉移即可。

  • 時間復雜度 O((n+106)?20)O((n+10^6)*20)O((n+106)?20)

Code

#include<cstdio> #include<cstring> #include<cctype> using namespace std; const int N=456800,inf=1e9; int a[N],f[1<<20],p[20]; inline int read() {int X=0,w=0; char ch=0;while(!isdigit(ch)) w|=ch=='-',ch=getchar();while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } void write(int x) {if(x>9) write(x/10);putchar(x%10+'0'); } inline int min(int x,int y) {return x<y?x:y; } int main() {freopen("ak.in","r",stdin);freopen("ak.out","w",stdout);int n=read();for(int i=1;i<=n;i++) a[i]=a[i-1]^read();memset(f,60,sizeof(f));for(int i=n;i;i--) f[a[i]]=i;for(int i=p[0]=1;i<20;i++) p[i]=p[i-1]<<1;for(int i=(1<<20)-1;i>=0;i--)if(f[i]<inf)for(int j=0;j<20;j++)if(i&p[j]) f[i^p[j]]=min(f[i^p[j]],f[i]);for(int i=1;i<=n;i++){int sum=a[i],num=0;for(int j=19;j>=0;j--)if(!(sum&p[j]) && f[num|p[j]]<=i) num|=p[j];int ans=num+(sum^num);write(ans),putchar('\n');}return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久色| 嫩草精品| 亚洲成人第一区 | 国产亚洲综合在线 | 欧美色一区二区三区在线观看 | 精品国产乱码久久久久久郑州公司 | 久久99国产精品成人 | 国产福利视频在线 | 久久亚洲av无码西西人体 | www黄色在线观看 | 97中文在线 | 一区二区在线视频播放 | 免费观看理伦片在线播放视频软件 | 亚洲www久久久 | 国产精品久久久久久久久动漫 | 日韩国产欧美在线视频 | 国产二区精品视频 | 亚洲一区二区免费视频 | 亚洲最黄视频 | 女女综合网 | 成人激情视频 | 高清二区 | 美女扒开让男人桶爽 | 亚洲剧情av | 久久综合桃花网 | 91黄色大片 | 久久精品国产露脸对白 | 日本不卡影院 | 国产香蕉精品视频 | 日韩欧美自拍 | 亚洲黄色免费观看 | 亚洲精品777| 人体写真 福利视频 | 国产免费91 | 可以免费观看av的网站 | 37p粉嫩大胆色噜噜噜 | 午夜av毛片 | 日韩欧美亚洲视频 | 男女啊啊啊视频 | 成人污污视频在线观看 | 丝袜诱惑一区二区 | jjzz国产 | 日韩有码在线视频 | 亚洲人交配| 狠狠干男人的天堂 | 伊人网伊人网 | 亚洲国产精品女人久久久 | 亚洲天堂成人网 | 麻豆免费在线播放 | 一区二区三区av | 夜色福利 | 黑帮大佬和我的365日第二部 | 亚洲一区二区三区免费视频 | 中文字幕精品久久久 | 国产午夜精品一区二区三区视频 | 白丝女仆被免费网站 | 中文在线天堂网 | 岛国成人在线 | 欧美怡红院视频 | 美女亚洲一区 | 国产一区二区在线播放视频 | 亚洲福利视频一区 | 又黄又色又爽 | 天堂在线8| 精品一二三四区 | jizz免费 | 国产97色在线 | 日韩 | 男女操操操 | 色欧美在线 | 又大又硬又爽免费视频 | 国产一区网站 | 成人国产av一区二区三区 | 四虎午夜| 日韩一级视频 | 国产东北女人做受av | 国产裸体网站 | 日本午夜免费福利视频 | 国产精品xxx在线 | 黑人操欧美人 | 黄网在线观看免费 | 在线一区二区三区四区 | 国产精品乱子伦 | 男同互操gay射视频在线看 | 人妻夜夜爽天天爽三区麻豆av网站 | 秋霞网一区二区三区 | 午夜精品国产精品大乳美女 | 无码人妻一区二区三区精品视频 | 精品一区欧美 | 中文字幕少妇在线三级hd | 亚洲成人中文字幕 | 欧美日韩国产精品一区二区 | 综合激情网 | 日韩欧美在线中文字幕 | 在线你懂得 | 欧美一级片一区 | 欧美在线免费观看 | 亚洲剧情av | 琪琪色视频 | 国产搞逼视频 |