1037C. Equalize
生活随笔
收集整理的這篇文章主要介紹了
1037C. Equalize
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C. Equalize:題目
題意:a字符串變成b字符串,有兩種方法,一種是選兩個換位置,花費為abs[j-i],二是單獨一個變,花費為1。 思路:如果兩個需要變并且不一樣挨在一起就可以省一點花費。 #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<int> a((int)4e5); vector<int> b((int)4e5); string str1, str2; int main() {int n;cin >> n;cin >> str1 >> str2;int cou = 0, sum = 0;for (int i = 0; i < n; i++){if (str1[i] != str2[i])cou++;else{for (int j = i - cou; j < i - 1; j++){if (str1[j] != str1[j + 1]){sum++;cou -= 2;j++;}}sum += cou;cou = 0;}}for (int j = n - cou; j < n - 1; j++){if (str1[j] != str1[j + 1]){sum++;cou -= 2;j++;}}sum += cou;cout << sum << endl; }總結
以上是生活随笔為你收集整理的1037C. Equalize的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bz2压缩解压
- 下一篇: node --- 在express中配