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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Divan and bitwise operations 异或,同或,组合数学(1500)

發(fā)布時(shí)間:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Divan and bitwise operations 异或,同或,组合数学(1500) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


題意 :

  • 原序列長為n,給m個(gè)連續(xù)子序列的左右端點(diǎn)的下標(biāo)以及該連續(xù)子序列的或和,保證這m個(gè)連續(xù)子序列的并集包含原序列每一個(gè)點(diǎn),求原序列的所有子序列的異或和,輸出任意一種

思路 :

  • 由于位運(yùn)算對每個(gè)位都是獨(dú)立的,考慮分別對每一位求解
  • 首先看輸入的給我們帶來什么,對于[l,r]得到的同或和x,考慮它的某一位,如果這一位是0,說明[l,r]每個(gè)元素這位都是0,如果這一位是1,至少有1個(gè)1,后者沒什么用
  • 考慮某一位bit,一共有n個(gè)元素,假設(shè)有a個(gè)1,b個(gè)0,顯然有a+b=na+b=na+b=n
  • 我們?nèi)绻獙Y(jié)果(所有子序列異或和的總和),就要選出若干個(gè)元素使它們異或和為1,根據(jù)異或和的性質(zhì),需要選擇奇數(shù)個(gè)1和若干個(gè)(0)0
  • 選奇數(shù)個(gè)1的方案為Ca1+Ca3+...=2a?1C_{a}^{1}+C_{a}^{3}+... =2^{a-1}Ca1?+Ca3?+...=2a?1,選任意個(gè)0的方案為2b2^2b
  • 根據(jù)乘法原理,總方案數(shù)為2a?1?2b=2a+b?1=2n?12^{a-1}*2^b=2^{a+b-1}=2^{n-1}2a?1?2b=2a+b?1=2n?1,在當(dāng)前bit位上貢獻(xiàn)為1<<bit1<<bit1<<bit
  • 所以對于每個(gè)位,只要有1,那么這個(gè)位對結(jié)果的貢獻(xiàn)就是2n?1?(1<<bit)2^{n-1}*(1 << bit)2n?1?(1<<bit),否則這個(gè)位對結(jié)果的貢獻(xiàn)是0
  • 假設(shè)bit位存在1,那么v中就可以拆除一塊(1 << bit),我們按照這種方法把v拆成若干個(gè)塊,每個(gè)塊都能產(chǎn)生這么多貢獻(xiàn),因此可以直接用v乘上2n?12^{n-1}2n?1得到答案
  • 即,只要看哪些位有1,(1<<bit)?2n?1(1<<bit)*2^{n-1}(1<<bit)?2n?1即可,事實(shí)上,設(shè)置一個(gè)初始變量v為00…0,每次讀入一個(gè)區(qū)間,都能知道哪些位現(xiàn)在至少有一個(gè)1,這個(gè)位可以被累加答案了,v|=x
#include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <unordered_set> #include <math.h> #define endl '\n' #define fi first #define se second #define pb push_backusing namespace std; using ll = long long;typedef pair<int, int> PII;const ll mod = 1e9 + 7;void solve() {int n, m, v = 0; cin >> n >> m;for (int i = 1, l, r, x; i <= m && cin >> l >> r >> x; i ++ ) v |= x;ll fac = 1;for (int i = 1; i <= n - 1; i ++ ) fac = fac * 2ll % mod;cout << fac * v % mod << endl; }int main() {cin.tie(nullptr) -> sync_with_stdio(false);int _;cin >> _;while (_ -- )solve();return 0; }

總結(jié)

以上是生活随笔為你收集整理的Divan and bitwise operations 异或,同或,组合数学(1500)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 囯产精品久久久久久 | 欧美老熟妇乱xxxxx | 人人插人人澡 | 欧洲精品免费一区二区三区 | 亚洲国产精品成人久久蜜臀 | 秋霞欧洲| 国产区视频 | 网站黄色在线观看 | 欧美激情图区 | 黄色在线观看国产 | 美女扒开内看个够网站 | 日韩网站免费观看 | 国产一区91精品张津瑜 | 永久av在线 | 五月婷婷六月色 | 麻豆资源 | 中文字幕无人区二 | 成人精品在线观看 | 亚洲精品成人无码毛片 | 骑骑上司妻电影 | 欧美一区二区不卡视频 | 老女人人体欣赏a√s | 庆余年三| 极品探花在线观看 | 毛片免费全部无码播放 | 少妇精品久久久久www | 久久久久久a | 欧美精品乱人伦久久久久久 | 污污的视频在线观看 | 超碰激情在线 | 一二三四精品 | 久久精品国产熟女亚洲AV麻豆 | 国产又粗又猛又爽又黄的网站 | 欧美日韩国产一区二区三区在线观看 | 日韩插插插 | 90岁老太婆乱淫 | 久久精品a亚洲国产v高清不卡 | 一区二区三区精 | 夜夜嗨av禁果av粉嫩av懂色av | 九九热这里只有精品6 | 最近日韩免费视频 | 大桥未久av在线 | 国产精品伦一区二区 | 亚洲日本韩国在线 | 国外成人性视频免费 | 男生和女生差差的视频 | 九色首页 | 日韩视频免费观看高清 | 婷婷深爱五月 | 6080午夜伦理 | 欧美日韩免费在线视频 | 精品无码av一区二区三区 | 国产精品熟女一区二区不卡 | 天天舔天天舔 | 99精品免费在线观看 | 国产精品自拍偷拍 | 1000亚洲裸体人体 | 天天躁夜夜躁狠狠是什么心态 | 国产美女主播 | av青青| 思思久久久 | 椎名由奈在线观看 | 高清乱码毛片入口 | 日韩欧美国产精品综合嫩v 国产小毛片 | 91黄在线看 | 第四色在线视频 | 男人的亚洲天堂 | 日韩一二三四区 | 国产探花在线精品一区二区 | 女生张开腿让男生插 | 天堂综合 | 国产色网| 午夜丁香婷婷 | 久久久香蕉 | 中国特级黄色大片 | 国产香蕉97碰碰碰视频在线观看 | 国产视频二区 | 国产二三区 | 精品孕妇一区二区三区 | 一道本在线播放 | 生活片一级片 | 欧美日韩成人在线播放 | av中文字幕亚洲 | 96国产精品 | 在线观看91视频 | 91国偷自产一区二区三区老熟女 | 国产成人精品av在线观 | 亚洲加勒比在线 | 成人在线免费观看视频 | 艳母日本动漫在线观看 | 日韩三级电影网址 | 天天搞天天干 | 日韩欧美一二区 | 都市激情亚洲 | www.激情五月| 国产乱论视频 | 黄色福利网站 | 欧美成本人视频 | 日韩 国产 在线 |