中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

dw用設(shè)計(jì)視圖做網(wǎng)站seo咨詢常德

dw用設(shè)計(jì)視圖做網(wǎng)站,seo咨詢常德,程序員做網(wǎng)站如何賺錢,大理市政府建設(shè)辦網(wǎng)站原題鏈接:C. Mashmokh and Reverse Operation 題目大意: 給出一個(gè)長(zhǎng)度為 2 n 2^{n} 2n 的正整數(shù)數(shù)組 a a a ,再給出 m m m 次操作。 每次操作給出一個(gè)數(shù)字 q q q ,把數(shù)組分為 2 n ? q 2^{n-q} 2n?q 個(gè)長(zhǎng)度為 2 q 2^{q} 2…

原題鏈接:C. Mashmokh and Reverse Operation


題目大意:


給出一個(gè)長(zhǎng)度為 2 n 2^{n} 2n 的正整數(shù)數(shù)組 a a a ,再給出 m m m 次操作。

每次操作給出一個(gè)數(shù)字 q q q ,把數(shù)組分為 2 n ? q 2^{n-q} 2n?q 個(gè)長(zhǎng)度為 2 q 2^{q} 2q 的段,然后每段執(zhí)行一次翻轉(zhuǎn)操作,操作完后輸出當(dāng)前數(shù)組的逆序?qū)?shù)量。

分段操作: [ a 1 , a 2 , . . . , a 2 q ] , [ a 2 q + 1 , a 2 q + 2 , . . . , a 2 q + 1 ] , . . . , [ a 2 n ? 1 + 1 , a 2 n ? 1 + 2 , . . . , a 2 n ] [a_{1},a_{2},...,a_{2^q}],[a_{2^{q}+1},a_{2^{q}+2},...,a_{2^{q+1}}],...,[a_{2^{n-1}+1},a_{2^{n-1}+2},...,a_{2^{n}}] [a1?,a2?,...,a2q?],[a2q+1?,a2q+2?,...,a2q+1?],...,[a2n?1+1?,a2n?1+2?,...,a2n?]

翻轉(zhuǎn)操作: [ a 2 q , a 2 q ? 1 , . . . , a 1 ] , [ a 2 q + 1 , a 2 q ? 1 , . . . , a 2 q + 1 ] , . . . , [ a 2 n , a 2 n ? 1 , . . . , a 2 n ? 1 + 1 ] [a_{2^{q}},a_{2^{q}-1},...,a_{1}],[a_{2^{q+1}},a_{2^{q}-1},...,a_{2^{q}+1}],...,[a_{2^{n}},a_{2^{n}-1},...,a_{2^{n-1}+1}] [a2q?,a2q?1?,...,a1?],[a2q+1?,a2q?1?,...,a2q+1?],...,[a2n?,a2n?1?,...,a2n?1+1?]

每次操作會(huì)改變?cè)瓟?shù)組,并且都要輸出操作完后逆序?qū)Φ臄?shù)量。

解題思路:


很有意思的分治歸并排序題。

首先發(fā)現(xiàn)我們數(shù)組長(zhǎng)度是 2 2 2 的次冪,且每次分段長(zhǎng)度也都是 2 2 2 的次冪,暗示我們可以向著分治的方向去思考。

我們知道:逆序?qū)? + + + 順序?qū)? = n ? ( n ? 1 ) 2 =\frac{n \cdot(n-1)}{2} =2n?(n?1)? 其中 n n n 為區(qū)間長(zhǎng)度。

我們將一個(gè)區(qū)間翻轉(zhuǎn)時(shí),本質(zhì)上就是將逆序?qū)Φ闹岛晚樞驅(qū)Φ闹到粨Q了一下,因?yàn)楸緛砟嫘虻姆D(zhuǎn)之后就變成順序的了。

這樣類似將數(shù)組分成一段段的 2 2 2 次冪長(zhǎng)度,我們考慮可以考慮類似歸并排序的分治方法。

歸并排序是在排序的過程中同時(shí)算出每一層的逆序?qū)?#xff0c;然后相加每層得到的逆序?qū)?#xff0c;從而得到整個(gè)原數(shù)組的逆序?qū)Φ摹?/p>

假設(shè)原數(shù)組 a a a [ 4 , 5 , 7 , 1 , 3 , 6 , 8 , 2 ] [4,5,7,1,3,6,8,2] [4,5,7,1,3,6,8,2] ,我們畫出歸并排序樹看看:

3 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] 7 3:[1,2,3,4,5,6,7,8]^{7} 3:[1,2,3,4,5,6,7,8]7
2 : [ 1 , 4 , 5 , 7 ] 2 , [ 2 , 3 , 6 , 8 ] 2 2:[1,4,5,7]^{2},[2,3,6,8]^{2} 2:[1,4,5,7]2,[2,3,6,8]2
1 : [ 4 , 5 ] 0 , [ 1 , 7 ] 1 , [ 3 , 6 ] 0 , [ 2 , 8 ] 1 1:[4,5]^{0},[1,7]^{1},[3,6]^{0},[2,8]^{1} 1:[4,5]0,[1,7]1,[3,6]0,[2,8]1
0 : [ 4 ] , [ 5 ] , [ 7 ] , [ 1 ] , [ 3 ] , [ 6 ] , [ 8 ] , [ 2 ] 0:[4],[5],[7],[1],[3],[6],[8],[2] 0:[4],[5],[7],[1],[3],[6],[8],[2]

(右上角角標(biāo)為將該層排好序時(shí)得到的逆序?qū)?shù)量,葉子層(第 0 0 0 層)均為 0 0 0 就不做標(biāo)記了)

那么總的逆序?qū)?shù)就是所有層角標(biāo)相加之和: 7 + 2 + 2 + 0 + 1 + 0 + 1 = 13 7+2+2+0+1+0+1=13 7+2+2+0+1+0+1=13 對(duì)。

我們考慮將區(qū)間長(zhǎng)度為 2 1 2^{1} 21 的段全翻轉(zhuǎn),看看會(huì)造成什么影響。

3 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] 7 3:[1,2,3,4,5,6,7,8]^{7} 3:[1,2,3,4,5,6,7,8]7
2 : [ 1 , 4 , 5 , 7 ] 2 , [ 2 , 3 , 6 , 8 ] 2 2:[1,4,5,7]^{2},[2,3,6,8]^{2} 2:[1,4,5,7]2,[2,3,6,8]2

1 ′ : [ 4 , 5 ] 1 , [ 1 , 7 ] 0 , [ 3 , 6 ] 1 , [ 2 , 8 ] 0 1':[4,5]^{1},[1,7]^{0},[3,6]^{1},[2,8]^{0} 1:[4,5]1,[1,7]0,[3,6]1,[2,8]0
0 ′ : [ 5 ] , [ 4 ] , [ 1 ] , [ 7 ] , [ 6 ] , [ 3 ] , [ 2 ] , [ 8 ] 0':[5],[4],[1],[7],[6],[3],[2],[8] 0:[5],[4],[1],[7],[6],[3],[2],[8]

那么總的逆序?qū)?shù)就是 7 + 2 + 2 + 1 + 0 + 1 + 0 = 13 7+2+2+1+0+1+0=13 7+2+2+1+0+1+0=13 對(duì)。

可以發(fā)現(xiàn),我們只有在第 1 → 0 1 \rightarrow 0 10 層往下的所有層逆序?qū)Ρ桓淖兞?#xff0c;即順序?qū)湍嫘驅(qū)粨Q了,而其他層 n → 2 n \rightarrow 2 n2 層則無變化。

因?yàn)闅w并到第 0 → i 0 \rightarrow i 0i 層前,其下的所有層是在做 邊排序邊計(jì)算 的過程,因此無論其下層的順序是怎么樣的,最終數(shù)組 排序 到到第 i i i 層時(shí)的狀態(tài)都是唯一確定的,不會(huì)影響到上一層。

比如我們修改前的第 1 1 1 層,和我們?cè)瓟?shù)組的第 1 1 1 層狀態(tài)是相同的,只有逆序?qū)晚樞驅(qū)Φ慕菢?biāo)被改變了。

同理,無論按何種順序如何翻轉(zhuǎn)第 2 q 2^{q} 2q 層,其只會(huì)影響第 0 → q 0 \rightarrow q 0q 的逆序?qū)顟B(tài),而不會(huì)影響第 q + 1 → n q+1 \rightarrow n q+1n 層逆序?qū)Φ臓顟B(tài)。

因此,我們先對(duì)原數(shù)組做一次歸并排序,同時(shí)記錄每一層的逆序?qū)顟B(tài),和順序?qū)顟B(tài)。

對(duì)每次的修改,對(duì) 1 → q 1 \rightarrow q 1q 層直接交換順序?qū)湍嫘驅(qū)Φ闹?#xff08;第 0 0 0 層全是 0 0 0 ,可以不管),其余不變(或者用 2 n ? q ? 2 q ? ( 2 q ? 1 ) 2 ? 2^{n-q} \cdot \frac{2^{q} \cdot (2^{q}-1)}{2}- 2n?q?22q?(2q?1)??當(dāng)前層逆序?qū)χ?#xff0c;不過有個(gè) 2 2 2 的次冪,比較麻煩)。

交換完后,統(tǒng)計(jì)所有層的逆序?qū)χ途褪俏覀兊拇鸢噶恕?/p>

時(shí)間復(fù)雜度: O ( n log ? n + q log ? n ) O(n \log n+q \log n) O(nlogn+qlogn)

AC代碼:

#include <bits/stdc++.h>
using namespace std;using PII = pair<int, int>;
using i64 = long long;void solve() {int n;cin >> n;vector<int> a((1 << n) + 1);for (int i = 1; i <= (1 << n); ++i) {cin >> a[i];}vector cnt(n + 1, vector<i64>(2));vector<int> b(1 << n);auto Msort = [&](auto self, int l, int r, int dep) -> void {if (l >= r) return;int mid = l + r >> 1, i = l, j = mid + 1, k = 0;self(self, l, mid, dep - 1), self(self, mid + 1, r, dep - 1);//求順序?qū)?/span>while (i <= mid && j <= r) {if (a[i] < a[j]) {cnt[dep][1] += r - j + 1;++i;} else {++j;}}//求逆序?qū)Σ⑼瑫r(shí)將數(shù)組排序i = l, j = mid + 1;while (i <= mid && j <= r) {if (a[i] > a[j]) {cnt[dep][0] += mid - i + 1;b[k++] = a[j++];} else {b[k++] = a[i++];}}while (i <= mid) {b[k++] = a[i++];}while (j <= r) {b[k++] = a[j++];}for (i = l, j = 0; i <= r; ++i, ++j) {a[i] = b[j];}};Msort(Msort, 1, 1 << n, n);int q;cin >> q;for (int i = 1; i <= q; ++i) {int d;cin >> d;i64 ans = 0;//修改d層 則將 [1, d] 層的值全部交換一下for (int j = 1; j <= n; ++j) {if (j <= d) {swap(cnt[j][0], cnt[j][1]);}ans += cnt[j][0];}cout << ans << '\n';}
}signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1; //cin >> t;while (t--) solve();return 0;
}
http://www.risenshineclean.com/news/50259.html

相關(guān)文章:

  • 茂名網(wǎng)站建設(shè)培訓(xùn)行業(yè)關(guān)鍵詞分類
  • 怎么做網(wǎng)站文字優(yōu)化項(xiàng)目宣傳推廣方案
  • 貴陽企業(yè)自助建站網(wǎng)絡(luò)銷售模式有哪些
  • wordpress 友情鏈接分類seo關(guān)鍵詞排名查詢
  • 做視頻網(wǎng)站把視頻放在哪里找廣西壯族自治區(qū)在線seo關(guān)鍵詞排名優(yōu)化
  • 毛片a做片在線觀看網(wǎng)站谷歌怎么投放廣告
  • 網(wǎng)站建設(shè)維護(hù)面試題營(yíng)銷方式有哪幾種
  • 畢業(yè)設(shè)計(jì)做網(wǎng)站用php好嗎下拉框關(guān)鍵詞軟件
  • 宜賓做直銷會(huì)員網(wǎng)站鄭州網(wǎng)絡(luò)營(yíng)銷公司排名
  • 網(wǎng)站制作怎么賺錢免費(fèi)發(fā)廣告網(wǎng)站
  • 谷歌做公司網(wǎng)站需要多少錢西安互聯(lián)網(wǎng)推廣公司
  • 做環(huán)球資源網(wǎng)站有沒有效果企業(yè)網(wǎng)站
  • 網(wǎng)站開發(fā)服務(wù)器知識(shí)開源seo軟件
  • linux網(wǎng)站如何做ip解析一個(gè)新公眾號(hào)怎么吸粉
  • 安全狗網(wǎng)站白名單指什么南京百度seo
  • 江油市建設(shè)局網(wǎng)站網(wǎng)站建設(shè)平臺(tái)
  • 代售網(wǎng)站建設(shè)淘寶搜索關(guān)鍵詞排名
  • 沒有外貿(mào)網(wǎng)站 如果做外貿(mào)全網(wǎng)營(yíng)銷推廣系統(tǒng)
  • 在北京建網(wǎng)站域名被墻查詢檢測(cè)
  • 深圳做積分商城網(wǎng)站設(shè)計(jì)品牌宣傳
  • 網(wǎng)站開發(fā)違法中國(guó)十大網(wǎng)絡(luò)營(yíng)銷平臺(tái)
  • 安卓手機(jī)建設(shè)網(wǎng)站百度收錄鏈接
  • 在淘寶做網(wǎng)站和網(wǎng)絡(luò)公司做網(wǎng)站區(qū)別福州短視頻seo方法
  • 網(wǎng)站建設(shè)初步規(guī)劃方案深圳網(wǎng)站設(shè)計(jì)小程序
  • 做ppt素材的網(wǎng)站開創(chuàng)集團(tuán)與百度
  • 張家港做網(wǎng)站優(yōu)化排名十大經(jīng)典廣告營(yíng)銷案例
  • 設(shè)計(jì)一個(gè)網(wǎng)站的價(jià)格表seo培訓(xùn)班
  • 一站式做網(wǎng)站報(bào)價(jià)上海做網(wǎng)站優(yōu)化
  • 深夜小網(wǎng)站軟文文案
  • 有專業(yè)做網(wǎng)站的學(xué)校嗎搜索引擎關(guān)鍵詞競(jìng)價(jià)排名