牛客網 排序(歸併排序最小花費)

2021-09-29 16:25:29 字數 1114 閱讀 5692

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

題目描述

小a有乙個dna序列串,強迫症的小a看它不順眼,想將它排好序。

給定長為n的dna序列串s(僅由`a,t,g,c`最多四種字元構成)。你可以進行任意次如下操作:任選兩個位置i,j(i輸入描述:

輸入一行,乙個字串s,表示題目描述所述的dna序列串。
輸出描述:

輸出乙個整數,表示將s中同種字元劃分到一起的最小花費。
示例1

輸入複製

agacg
輸出複製

2
備註:

字串長度n滿足1≤n≤2×105。

題意:相鄰之間交換,最終形式是相同字元挨在一起,求最小花費。

題解:歸併排序+全排列(四個字元不同價值全排列)

樣例卡longlong!!

#include #include using namespace std;

const int maxn = 2e5+5;

int a[maxn]; //原始陣列

int temp[maxn]; //維護

long long cnt=0; //答案

void msort(int l,int r)else

temp[op++]=a[i++];

}if(i<=mid) for(;i<=mid;) temp[op++]=a[i++];

if(j<=r) for(;j<=r;) temp[op++]=a[j++];

for(i=l;i<=r;i++) a[i]=temp[i];

}}int book[5];

int shunxu[5];

long long mincnt;

string s;

void dfs(int n)

牛客網 最小花費

題目描述 在某條線路上有n個火車站,有三種距離的路程,l1,l2,l3,對應的 為c1,c2,c3.其對應關係如下 距離s 票價 09,09。每兩個站之間的距離不超過l3。當乘客要移動的兩個站的距離大於l3的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票。現在給你乙...

牛客網 逆序對(歸併排序)

思路 我們知道在歸併排序的逆序對求法中,我們是通過遞迴的方式求解每一段的逆序對,通過這個方法我們似乎可以求解該題,在遞迴的過程中,我們多乙個引數用來表示當前遞迴的是第幾層,而這個層數其實就是我們需要找的qi。我們首先預處理出所有層的逆序對數和順序對數,在查詢時我們需要翻轉所有大小為2 qi 的塊,由...

牛客 逆序數 (歸併排序)

題目描述 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。比如乙個序列為4 5 1 3 2,那麼這個序列的逆序數為7,逆序對分別為 4,1 4,3 4,2 5,1 5,3 5,2 3,2 輸入描述 第一行有...