吉老師的面前出現了一座漢諾塔!但是這個漢諾塔好像壞了,盤子並不是按照從大到小的順序排列的……吉老師非常不開心,立志要把這個漢諾塔修好!吉老師每分鐘可以交換挨在一起的兩個盤子,吉老師希望用的時間最短,吉老師不會啊,你能幫幫吉老師嗎?
第一行1個整數n。
第二行為n 個非負整數,按從下到上的順序給出每個盤子的大小。
對於50%的資料,2<=n<=1000。
對於100%的資料,2<=n<=100000。輸出乙個整數,表示最少需要交換多少次相鄰的盤子才能將盤子遞減排列。同樣大小的盤子應該排在一起。
51 3 10 8 5
7吉老師經過多次嘗試,發現最優情況下的每次交換中,一定是將小盤子放到**子的上面,這樣它們就從逆序變成了順序,而且只有這一對盤子從逆序變成了順序,所以總共逆序的盤子對數恰好減少一。而當沒有逆序的盤子時,漢諾塔就修好啦。
1 #include 2 #includeview code3 #include 4 #include 5 #include
6 #include 7 #include 8 #include 9 #include
10 #include 11 #include 12
#define maxn 100005
13#define inf 999999
14#define cha 127
15using
namespace
std;
1617
intn;
18int
plate[maxn], tmp[maxn];
19long
sum;
2021
void mysort(int left,int
right) 33}
34while (i <=mid)
35 tmp[p++] = plate[i++];
36while (j <=right)
37 tmp[p++] = plate[j++];
38for (int p = left; p <= right; p++)
39 plate[p] =tmp[p];40}
4142
void
init()
4950
intmain()
51
照搬了之前的作業求逆序對。提示說得很清楚,坑點在於答案超過了int範圍
加密解密 DSA演算法
digital signature algorithm dsa 是schnorr和elgamal簽名演算法的變種,被美國nist作為dss digitalsignature standard 演算法中應用了下述引數 p l bits長的素數。l是64的倍數,範圍是512到1024 q p 1的160...
openssl gendsa 生成DSA私鑰
介紹openssl gendsa根據dsaparam 檔案生成dsa私鑰檔案。dsa是美國nist作為數字簽名標準 digitalsignature standard 語法openssl gendsa out filename des des3 idea rand file s engine id ...
影像科dsa為什麼必須買維修保險 DSA的維護修理
裝置執行與保障 operation guarantee for instruments dsa是介入手術 的重要裝置,在醫院屬貴重大型 裝置,需定期進行維護保養,而且維護保養從購買 設計 機房和安裝裝置就應開始。維護保養做得好,出現故障的 機會就少。在維護過程中及時發現問題,處理問題,能夠 很好地避...