時間限制: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 輸入描述 第一行有...