亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

51Nod - 1674 分治

2019-11-14 08:45:17
字體:
來源:轉載
供稿:網友

題意:

lyk擁有一個區間。它規定一個區間的價值為這個區間中所有數and起來的值與這個區間所有數or起來的值的乘積。例如3個數2,3,6。它們and起來的值為2,or起來的值為7,這個區間對答案的貢獻為2*7=14?,F在lyk有一個n個數的序列,它想知道所有n*(n+1)/2個區間的貢獻的和對1000000007取模后的結果是多少。例如當這個序列為{3,4,5}時,那么區間[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]的貢獻分別為9,0,0,16,20,25。Input
第一行一個數n(1<=n<=100000)。接下來一行n個數ai,表示這n個數(0<=ai<=10^9)。Output
一行表示答案。Input示例
33 4 5Output示例
70

思路:

完全沒思路,看網上題解的。分治,這方面能力還是弱。對于一段區間[l,r],求出中點mid,然后遞歸解決[l,mid-1]和[mid,r]的子問題,還有就是題目所要求的區間左端點在[l,mid-1],右端點在[mid,r]的情況,這里其實就是在[l,mid-1]中枚舉左端點,然后在[mid,r]中枚舉右端點。這里關鍵要注意到,在求[mid,r]內的and前綴和以及or前綴和會發現大部分的值都是相同的,因為1e9的二進制位數只有大約log(1e9)位,這樣只要把[mid,r]區間的前綴和的值壓縮一下,數值相同的一段看作一個數,并把這段長度儲存在cnt數組中,這樣前綴和長度不會超過log(1e9)。這樣再對[l,mid-1]區間遍歷一遍,對每個位置再暴力掃一遍[mid,r]的前綴和,復雜度是O(n*logn)。這樣分治,最后總復雜度是O(nlognlogn)。

代碼:

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 1e5 + 10;const ll MOD = 1e9 + 7;ll ans;ll a[MAXN], cnt[MAXN], OR[MAXN], AND[MAXN];void solve(int l, int r) {    if (l == r) return;    int mid = (l + r + 1) >> 1;    int pos = mid;    OR[pos] = AND[pos] = a[mid];    cnt[pos] = 1;    for (int i = mid + 1; i <= r; i++) {        if (OR[pos] != (OR[pos] | a[i]) || AND[pos] != (AND[pos] & a[i])) {     //   當前and(or)前綴和與前一個and(or)前綴和不一致。            ++pos;            OR[pos] = OR[pos - 1] | a[i];            AND[pos] = AND[pos - 1] & a[i];            cnt[pos] = 1;        }        else ++cnt[pos];    }    ll resor = a[mid - 1], resand = a[mid - 1];    for (int i = mid - 1; i >= l; i--) {        resor |= a[i];        resand &= a[i];        for (int j = mid; j <= pos; j++) {            ans = (ans + (resor | OR[j]) * (resand & AND[j]) % MOD * cnt[j] % MOD) % MOD;        }    }    solve(l, mid - 1);    solve(mid, r);}int main() {    int n;    scanf("%d", &n);    ans = 0;    for (int i = 1; i <= n; i++) {        scanf("%I64d", &a[i]);        ans = (ans + a[i] * a[i] % MOD) % MOD;    }    solve(1, n);    PRintf("%I64d/n", ans);    return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91色琪琪电影亚洲精品久久| 精品国产户外野外| 九九九久久久久久| 亚洲福利影片在线| 久久精品人人做人人爽| 国产精品青青在线观看爽香蕉| 久久亚洲电影天堂| 日韩免费av一区二区| 日本精品视频在线播放| 日韩精品日韩在线观看| 久久久久久久久亚洲| 中文欧美日本在线资源| 欧美大片在线影院| 日本高清不卡的在线| 欧美国产日本在线| 国产一区二区三区18| 亚洲男人第一网站| 日韩美女毛茸茸| 日韩欧美国产中文字幕| xvideos国产精品| 久久久久久有精品国产| 国产成人极品视频| 在线成人中文字幕| 日韩一区二区精品视频| 亚洲黄色片网站| 91精品久久久久久综合乱菊| 亚洲大胆美女视频| 欧美激情视频给我| 俺也去精品视频在线观看| 久久久久久久久爱| 日韩69视频在线观看| 韩剧1988免费观看全集| 亚洲精品资源美女情侣酒店| 亚洲午夜精品视频| 夜夜狂射影院欧美极品| 日韩成人av在线| 亚洲激情久久久| 亚洲欧美国产精品va在线观看| 国产精品久久久久久久天堂| 亚洲视频在线免费观看| 中文综合在线观看| 777午夜精品福利在线观看| 久久久亚洲欧洲日产国码aⅴ| 国产精品91视频| 亚洲毛片在线看| 国产精品91在线观看| 精品成人69xx.xyz| 亚洲国产精品嫩草影院久久| 最新国产成人av网站网址麻豆| 久久精品视频在线播放| 亚洲第一福利网站| 亚洲天堂av在线播放| 日韩高清电影免费观看完整| 欧洲亚洲妇女av| 日韩美女av在线| 亚洲第一区在线观看| 欧美国产日韩中文字幕在线| 91精品久久久久久久久久久| 91视频国产精品| 欧美日韩国产综合新一区| 777午夜精品福利在线观看| 国产亚洲欧美一区| 欧美黑人巨大精品一区二区| 国产欧美日韩精品专区| 国产精品专区h在线观看| 亚洲电影免费观看高清完整版| 国产亚洲视频中文字幕视频| 欧美激情xxxxx| 欧美猛男性生活免费| 久热精品视频在线观看一区| 91在线视频免费| 亚洲最大福利视频网| 在线看福利67194| 欧美老女人在线视频| 日韩av不卡在线| 亚洲香蕉av在线一区二区三区| 国产精品国产亚洲伊人久久| 中文字幕亚洲精品| 欧美激情精品久久久| 久久久久国产精品www| 久久久免费av| 色99之美女主播在线视频| 日本午夜人人精品| 国产成人精品在线观看| 性金发美女69hd大尺寸| 伊人久久免费视频| 色播久久人人爽人人爽人人片视av| 国产精品入口日韩视频大尺度| 91福利视频网| 米奇精品一区二区三区在线观看| 国产日韩中文在线| 国产主播在线一区| 国产亚洲成av人片在线观看桃| 国产成人涩涩涩视频在线观看| 国产精品久久久一区| 久久国内精品一国内精品| 一区国产精品视频| 欧美性生交大片免费| 26uuu另类亚洲欧美日本老年| 欧美日韩美女在线观看| 国产一区二区免费| 91精品国产综合久久久久久蜜臀| 一区二区欧美在线| 在线视频欧美日韩精品| 国产综合视频在线观看| 久久久欧美一区二区| 成人欧美一区二区三区黑人孕妇| 欧美日韩国产综合新一区| 国产精品高精视频免费| 国产主播喷水一区二区| 久久99久久99精品免观看粉嫩| 亚洲精品999| 欧美性xxxxx极品娇小| 国产精品欧美激情在线播放| 久久久久一本一区二区青青蜜月| 欧美日韩国产在线播放| 久久久国产精品免费| 欧美一级片一区| 中文字幕日韩欧美在线视频| 欧美性猛交xxxxx水多| 亚洲福利影片在线| 久久国产天堂福利天堂| 久久久久久久网站| 国产拍精品一二三| 欧美电影免费观看| 国产一区二区日韩精品欧美精品| 亚洲人成自拍网站| 欧美人成在线视频| 97在线免费观看视频| 一本色道久久88综合亚洲精品ⅰ| 国产91亚洲精品| 久久久欧美精品| 亚洲新中文字幕| 亚洲精品电影网站| 精品久久久香蕉免费精品视频| 欧美洲成人男女午夜视频| 国产精品免费观看在线| 欧美网站在线观看| 国产中文日韩欧美| 超薄丝袜一区二区| 国产精品爽黄69天堂a| 高清日韩电视剧大全免费播放在线观看| 国产欧美精品日韩精品| 91美女片黄在线观看游戏| 91影院在线免费观看视频| 亚洲激情小视频| 久久免费视频在线| 国产精品网红直播| 欧美高清电影在线看| 亚洲人成在线观看| 九九热最新视频//这里只有精品| 精品国产欧美一区二区五十路| 久久精品亚洲94久久精品| 人体精品一二三区| 欧美噜噜久久久xxx| 精品久久久久久亚洲国产300| 2019亚洲男人天堂| 中文字幕日韩在线观看| 欧美一区二区三区四区在线| 国产日韩精品综合网站| 日本国产欧美一区二区三区| 国产一区二区在线播放| 亚洲自拍欧美色图| 国产日韩欧美视频在线|