#include #include #include using namespace std;

int n, m;

int countReversePairs(string s) { int cnt = 0; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (s[i] > s[j]) cnt++; } } return cnt; }

bool cmp(pair<string, int> a, pair<string, int> b) { if (a.second != b.second) { return a.second < b.second; } else { return false; } }

int main() { cin >> n >> m; vector<pair<string, int>> v(m); for (int i = 0; i < m; i++) { cin >> v[i].first; v[i].second = countReversePairs(v[i].first); } sort(v.begin(), v.end(), cmp); for (auto p : v) { cout << p.first << endl; } return 0;

请写出以下题目的c++代码:现在有一些长度相等的 DNA 串只由 ACGT 四个字母组成请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符 Ai、Aj具有 i j 且 Ai Aj 的性质。如字符串 ATCG 中T 和 C 是一个逆序对T 和 G 是另一个逆序对这个字符串的逆序对数为 22。输入格式第 11 行:两个整数 nn 和 mmn0n le 50n0n≤50 表示字符串长

原文地址: https://www.cveoy.top/t/topic/fjrv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录