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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CodeForces - 1451E2 Bitwise Queries (Hard Version)(交互+构造+位运算)

發(fā)布時(shí)間:2024/4/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces - 1451E2 Bitwise Queries (Hard Version)(交互+构造+位运算) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:給出一個(gè)長度為 n(n 保證了是 2 的冪次),每個(gè)數(shù)的范圍在 [ 0 , n - 1 ] 的一個(gè)數(shù)組,現(xiàn)在要求通過有限次操作確定下來這個(gè)數(shù)組:

  • 詢問 a[ i ] xor a[ j ] 的答案
  • 詢問 a[ i?] or a[ j ] 的答案
  • 詢問 a[ i ] and a[ j ] 的答案
  • 題目分析:因?yàn)榭梢栽儐柸我鈨蓚€(gè)數(shù)異或運(yùn)算后的答案,根據(jù) ,我們可以先確定出序列中的任意一個(gè)數(shù)字設(shè)為 x,然后對于其他的數(shù)字依次詢問與 x 的異或,就可以反推出所有的數(shù)字了,所以現(xiàn)在問題轉(zhuǎn)換成如何在有限次操作中確定下來某個(gè)數(shù)字的取值

    E1 是最多詢問 n + 2 次,E2 是最多詢問 n + 1 次,先簡單說一下 E1 的做法,對于位運(yùn)算和加法運(yùn)算之間有個(gè)公式是:

    對于每組樣例,我們可以任取三個(gè)數(shù)字 a[ i ] , a[ j ] , a[ k ],利用上述公式通過六次詢問求出 a[ i ] + a[ j ],a[ i ] + a[ k ],a[ j ] + a[ k ],現(xiàn)在是三個(gè)未知數(shù)+三個(gè)等式就可以分別求出 a[ i ] , a[ j ] , a[ k ] 的值了,對于剩下的 n -?3 個(gè)數(shù)來說,依次與 a[ i ] 或 a[ j ] 或 a[ k ] 進(jìn)行異或操作就可以反推出答案了,不過很可惜的是,這樣的做法詢問次數(shù)是 6 + ( n - 3 ) = n + 3 次

    還是由于異或運(yùn)算的性質(zhì),當(dāng)我們知道??和后,將這兩個(gè)數(shù)進(jìn)行異或運(yùn)算就可以直接得到了,少去一次異或運(yùn)算的詢問復(fù)雜度就是 n + 2 次,已經(jīng)可以通過 E1 了

    到此為止,我們會(huì)發(fā)現(xiàn),題目中給定的一個(gè)條件我們還沒有用上,就是每個(gè)數(shù)的范圍都在 [ 0 , n - 1 ] 之內(nèi),我們分兩種情況考慮:

  • 假設(shè)至少存在兩個(gè)數(shù) a[ j?] 和 a[ k ] 相等,那么其與第三個(gè)數(shù)分別異或得到的結(jié)果顯然也是相等的,符號語言就是:,如此一來我們就可以直接通過“與”運(yùn)算或者“或”運(yùn)算求出這兩個(gè)數(shù)了,即,,然后對于剩下的 n - 2 個(gè)數(shù)進(jìn)行異或運(yùn)算反推,這種情況的詢問復(fù)雜度是 1 + ( n - 2 ) = n - 1 次
  • 假設(shè)所有的數(shù)兩兩都不相同,換句話 n 個(gè)數(shù)覆蓋了 [ 0 , n - 1 ] 這一整個(gè)區(qū)間,又因?yàn)?n - 1 是 2 的冪次減一,換句話說 n - 1 在二進(jìn)制下全部是 1 ,所以對于任意一個(gè) x 來說,一定存在這一個(gè) y,滿足,也就是說?,到此為止,根據(jù)??這個(gè)公式再隨便選一個(gè)數(shù)字解方程即可,因?yàn)楦鶕?jù)上述方法得到的 x 和 y 已經(jīng)滿足了這個(gè)條件,所以就可以少詢問一次,所以在 E1 的基礎(chǔ)上少了一次詢問,詢問復(fù)雜度就降低至了 n + 1 次
  • 代碼:
    ?

    //#pragma GCC optimize(2) //#pragma GCC optimize("Ofast","inline","-ffast-math") //#pragma GCC target("avx,sse2,sse3,sse4,mmx") #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> #include<cassert> #include<bitset> using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e6+100;int _xor[N],last[N],a[N];int interact(int i,int j,const char s[]) {printf("%s %d %d\n",s,i,j);fflush(stdout);int num;scanf("%d",&num);return num; }int main() { #ifndef ONLINE_JUDGE // freopen("data.in.txt","r",stdin); // freopen("data.out.txt","w",stdout); #endif // ios::sync_with_stdio(false);memset(last,-1,sizeof(last));last[0]=1;int n,id1=-1,id2=-1;scanf("%d",&n);for(int i=2;i<=n;i++){_xor[i]=interact(1,i,"XOR");//_xor[i]=a[1]^a[i]if(last[_xor[i]]!=-1)//a[1]^a[last[_xor[i]]]==a[1]^a[i]id1=last[_xor[i]],id2=i;//a[id1]=a[id2]last[_xor[i]]=i;}if(id1!=-1)//存在兩個(gè)相同的數(shù)字 {a[id1]=a[id2]=interact(id1,id2,"AND");a[1]=a[id1]^_xor[id1];for(int i=2;i<=n;i++)a[i]=_xor[i]^a[1];}else//所有數(shù)字都不相同 {int id1=last[n-1];//a[1]^a[id1]=n-1 -> a[1]&a[id1]=0int id2=id1!=2?2:3;//隨便再選一個(gè)數(shù) int sum1=n-1;//a[1]+a[id1]int sum2=_xor[id2]+2*interact(1,id2,"AND");//a[1]+a[id2]int sum3=(_xor[id1]^_xor[id2])+2*interact(id1,id2,"AND");//a[id1]+a[id2]a[1]=(sum1+sum2-sum3)/2;for(int i=2;i<=n;i++)a[i]=_xor[i]^a[1];}printf("!");for(int i=1;i<=n;i++)printf(" %d",a[i]);return 0; }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的CodeForces - 1451E2 Bitwise Queries (Hard Version)(交互+构造+位运算)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产v片 | 日本阿v视频在线观看 | 女生扒开腿让男生操 | 女女同性高清片免费看 | 国产精品无码一区二区无人区多人 | 齐天大性床战铁扇公主 | 逼逼爱插插网站 | 四虎免费久久 | 成人一区二区在线 | 白丝少妇 | 亚洲成人18| 性做久久久久 | 都市激情男人天堂 | 黄色美女一级片 | 青春草国产视频 | 欧美精产国品一二三 | 日韩欧美一级大片 | 午夜福利电影 | 在线看免费 | www.色啪啪.com| 欧美另类在线观看 | 日韩欧美中文在线观看 | aaa在线视频 | 天海翼一区二区三区 | 草色噜噜噜av在线观看香蕉 | av永久免费网站 | 在线视频免费观看一区 | 最新版天堂资源在线 | 伊人亚洲综合 | 国产片一区二区 | 日韩天天 | 欧美综合一区二区三区 | aaaaa级少妇高潮大片免费看 | 久久精品国产亚洲a | 精品无码国产一区二区三区51安 | 国产美女特级嫩嫩嫩bbb | 香蕉视频网站在线观看 | 黑料福利| 肉丝肉足丝袜一区二区三区 | 免费看欧美大片 | 亚洲精品日韩精品 | 国产黄色网 | 国产人妻黑人一区二区三区 | 色欲av永久无码精品无码蜜桃 | 男生和女生一起搞鸡 | 成人亚洲综合 | 69av视频在线观看 | 天天色天天看 | 欧美剧场 | 七月婷婷综合 | 无码人妻久久一区二区三区蜜桃 | 亚洲欧美综合网 | missav | 免费高清av在线看 | 六月婷婷激情 | 午夜av免费在线观看 | 国产成人自拍视频在线 | 久久久久国产 | 国产精品久线在线观看 | 久久一级免费视频 | 秋霞网一区二区 | 久久视频在线观看免费 | 日韩视频在线观看一区二区 | 国产夫绿帽单男3p精品视频 | 丰满少妇大力进入 | 亚洲精品乱码久久久久久自慰 | 51福利视频| 亚洲妇女体内精汇编 | 日日燥夜夜燥 | 特级av| 国产一区 在线播放 | 亚av | 亚洲狼人av| 一级美女视频 | 成人激情在线观看 | 麻豆精品a∨在线观看 | 亚洲欧美国产高清va在线播放 | 男人的天堂色偷偷 | 国产精品www.| 激情视频网址 | 成人作爱视频 | 别揉我奶头一区二区三区 | 久久久久久久久久久久久女国产乱 | 欧美激情一区二区 | 污污网站在线免费观看 | 亚洲丝袜视频 | 亚州一区二区 | 午夜美女福利视频 | 欧美黄色大片网站 | 国产精品久久久久久亚洲调教 | 欧美一级欧美三级在线观看 | 四虎一国产精品一区二区影院 | 午夜欧美精品久久久久久久 | 黄色大片网址 | 精品国产乱码久久久久久牛牛 | 国产97自拍 | 影音先锋精品 | 欧美区在线观看 | 久热草| 国产精品粉嫩 |