日韩性视频-久久久蜜桃-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精品久久久久久 | 青青操免费在线视频 | 亚洲美女高潮久久久 | 久久亚洲中文字幕无码 | 在线免费精品视频 | www.五月婷婷 | 日韩一中文字幕 | 九九热只有精品 | 国产精品伦一区 | 亚洲 激情 小说 另类 欧美 | 日日干日日插 | 日本大尺度床戏揉捏胸 | 中文字幕日韩专区 | 97免费在线 | 免费精品 | 激情五月开心婷婷 | 日韩国产欧美精品 | 中文字幕在线免费看线人 | 国产三级精品在线观看 | 都市激情男人天堂 | 97成人人妻一区二区三区 | xxxx国产精品 | 日韩欧美亚洲精品 | 国产乱淫av| 男人天堂成人网 | 在线观看免费看片 | 69福利网 | 综合色婷婷 | 黄色视屏免费 | www.色天使 | 精品黑人一区二区三区在线观看 | 青青草手机在线视频 | 亚洲成人第一页 | 妞妞av| 国产电影一区在线观看 | 色成人免费网站 | 国产精品久久久久久久久久久新郎 | 拔擦8x成人一区二区三区 | 国产日韩在线观看一区 | 一二三四视频社区在线 | 高清一区二区三区 | 国产精欧美一区二区三区蓝颜男同 | 玩日本老头很兴奋xxxx | 欧美日韩一区二区三区69堂 | 女警白嫩翘臀呻吟迎合 | 成人深夜在线观看 | 欧洲久久久久久 | 日韩在线一级片 | 久久资源365| 亚洲视频一区二区三区 | 蜜桃成熟时李丽珍在线观看 | 日韩久久久久久久久 | 欧美日韩亚洲精品一区二区 | 国产综合av| 亚洲自拍偷拍一区 | 亚洲国产美女视频 | 日韩黄色免费网站 | 午夜免费福利小电影 | 欧美日韩精品 | 久草高清 | 日韩欧美在线免费观看 | 精品99久久 | 韩日午夜在线资源一区二区 | 好吊视频一区二区 | 熟妇人妻中文字幕无码老熟妇 | 美女又爽又黄免费视频 | 久久精品国产精品亚洲色婷婷 | 高清乱码毛片入口 | 欧美伦理片 | 蜜桃视频免费网站 | 五月天综合激情 | 亚洲乱码中文字幕久久孕妇黑人 | 国产女主播一区二区 | 日批网址 | 亚洲操操操 | 久久久久麻豆v国产精华液好用吗 | 伊人三区 | 亚洲毛片一区二区 | 青青草超碰 | 双性人妖互交localhost | 91网在线 | 3d欧美精品动漫xxxx无尽 | 亚洲经典自拍 | 天天做天天摸天天爽天天爱 | 久久精品一区二区三区四区 | 91蜜桃视频在线观看 | 国产精品人人妻人人爽 | 日日夜夜一区二区 | 欧美成人小视频 | 亚洲不卡在线视频 | 91亚色视频| 中文字幕不卡一区 | 国产成人在线免费观看视频 | 用舌头去添高潮无码视频 | 91黄色免费网站 | 99久久精品久久久久久清纯 | 在线视频在线观看 |