Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
113820 | 彭士宝 | 部分排序 | C++ | Accepted | 1 MS | 284 KB | 932 | 2025-03-16 16:37:08 |
#include <iostream> #include <vector> #include <set> #include <algorithm> using namespace std; int main() { int n, k; cin >> n >> k; vector<int> P(n); for (int i = 0; i < n; ++i) { cin >> P[i]; } set<vector<int>> uniqueSequences; // 用于存储不同的排序后数列 // 遍历所有可能的连续子序列 for (int i = 0; i <= n - k; ++i) { vector<int> temp = P; // 复制原始数列 vector<int> subsequence(temp.begin() + i, temp.begin() + i + k); sort(subsequence.begin(), subsequence.end()); // 对子序列排序 // 将排序后的子序列放回原位置 for (int j = 0; j < k; ++j) { temp[i + j] = subsequence[j]; } uniqueSequences.insert(temp); // 将新数列加入集合 } cout << uniqueSequences.size() << endl; // 输出不同数列的数量 return 0; }