AcWing 108 奇數碼問題

2022-06-10 16:57:09 字數 653 閱讀 7018

原題鏈結

考察:歸併排序

n恒為奇數,所以左右上下移動不會改變逆序對的奇偶性.

1 #include 2 #include 3

using

namespace

std;

4const

int n = 250010

;5 typedef long

long

ll;6

intn,a[n],b[n],tmp[n];

7void read(intc)8

15}16 ll merge(int l,int r,int

a)17

28while(i<=mid) tmp[k++] = a[i++];

29while(j<=r) tmp[k++] = a[j++];

30for(int i=l;i<=r;i++) a[i] = tmp[i-l];

31return

ans;32}

33int

main()

3444

return0;

45 }

2021.3.5 二刷wa了n次發現read函式裡的c陣列寫成了a

**已經改成了二刷**,這題的關鍵點在於左右不改變逆序對個數,上下移動逆序對偶數次變化.

AcWing 108 奇數碼問題

題目描述 你一定玩過八數碼遊戲,它實際上是在乙個3 3的網格中進行的,1個空格和1 8這8個數字恰好不重不漏地分布在這3 3的網格中。例如 5 2 8 1 3 4 6 7在遊戲過程中,可以把空格與其上 下 左 右四個方向之一的數字交換 如果存在 例如在上例中,空格可與左 上 下面的數字交換,分別變成...

ACWING108 奇數碼問題(逆序對)

你一定玩過八數碼遊戲,它實際上是在乙個3 3的網格中進行的,1個空格和1 8這8個數字恰好不重不漏地分布在這3 3的網格中。例如 5 2 8 1 3 4 6 7 在遊戲過程中,可以把空格與其上 下 左 右四個方向之一的數字交換 如果存在 例如在上例中,空格可與左 上 下面的數字交換,分別變成 5 2...

108 奇數碼問題

類似我們小時候玩過的數字華容道,就是有乙個缺的然後可以移動變成不同的樣子,本題要你解決的是從狀態一能否通過移動變到狀態二。一開始拿到題一看這不就八數碼公升級版嗎,然後改了下八數碼 t了,其實結論做法很簡單,但是如果沒做過類似的題,可能想不到這裡去,這道題需要用奇偶性。奇偶性很神奇,對於一類問題,如果...