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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【CF1338C】Perfect Triples【位运算】【构造】

發布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CF1338C】Perfect Triples【位运算】【构造】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

題意:有一序列SSS由下列方式生成:

  • 找到字典序最小的正整數(a,b,c)(a,b,c)(a,b,c),滿足a,b,ca,b,ca,b,c不在SSS中且a⊕b⊕c=0a\oplus b\oplus c=0abc=0,其中⊕\oplus為異或
  • a,b,ca,b,ca,b,c加入SSS
  • 重復第一步
  • TTT組數據,求SSS的第nnn項。

    T≤105,n≤1016T\leq 10^5,n\leq10^{16}T105,n1016

    通過觀察樣例和理性猜想,可以假設前4k?14^k-14k?1項恰好填完了1~4k?11\sim4^k-114k?1,顯然這是整數個三元組。采用歸納法構造4k~4k+1?14^k\sim 4^{k+1}-14k4k+1?1

    將每個序列中的數按二進制位兩個為一組拆分(以下稱拆成的兩個二進制位為"位"),當前的數(已構造的和此步將構造的)有2(k+1)2(k+1)2(k+1)

    之前填的4k?14^k-14k?1項可以看成最高位為00\texttt{00}00,我們要構造的是最高位為01,10,11\texttt{01,10,11}01,10,11,后面kkk位分別遍歷0~4k?10\sim 4^k-104k?1

    對于每一個(a,b,c)(a,b,c)(a,b,c)顯然有a<b<ca<b<ca<b<c

    構造aaa最高位為01\texttt{01}01,容易得到b,cb,cb,c最高位為10,11\texttt{10,11}10,11。這是最理想的結果,下面將證明這種構造是可行的。

    現在已經滿足了a<b<ca<b<ca<b<c,那么a,b,ca,b,ca,b,c的后kkk位是互不影響的。下面討論的都是這后kkk位。

    現在考慮如何最小化字典序

    對于一個已經確定的aaa,我們都需要找到最小的bbb(廢話)

    對于aaa上的每一位,都找到一個最小的對應的bbb的位即可(似乎還是廢話,但似乎就是想不到)

    設新構造的三元組為(ai,bi,ci)(0≤i≤2k?1)(a_i,b_i,c_i)(0\leq i\leq2^k-1)(ai?,bi?,ci?)(0i2k?1)顯然所有的ai=ia_i=iai?=i

    根據以上信息可以構造出(a,b,c)(a,b,c)(a,b,c)每一位字典序最小的對照表

    盜用官方題解的圖:


    隨便推一下就可以了

    復雜度O(Tlog?n)O(T\log n)O(Tlogn)

    總結

    以上是生活随笔為你收集整理的【CF1338C】Perfect Triples【位运算】【构造】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。