A
输入:
4
3 6 7 8
输出:
10
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long int;
int maxScore(int n, vector<int>& a) {
// 排序数组
sort(a.begin(), a.end());
int max_score = 0;
// 枚举所有可能的子区间
for (int start = 0; start < n; start++) {
for (int end = start; end < n; end++) {
int k = end - start + 1; // 当前子区间的长度
int median = a[start + (k - 1) / 2 ]; // 中位数
int score = median + k; // 计算得分
max_score = max(max_score, score); // 更新最大得分
}
}
return max_score;
}
int main() {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << maxScore(n, a) << endl;
return 0;
}
D
代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
cin.ignore(); // 忽略换行符
string s;
while(n--) {
getline(cin, s);
int x = 0; // 初始化查找位置为0
while ((x = s.find("ljl")) != -1) {
// 将子串 "ljl" 替换为 "ncljr"
s.replace(x, 3, "ncljr");
}
// 输出替换后的字符串
cout << s << endl;
}
return 0;
}
I
输入 12345
输出 22412
说明
𝑥=52431
ans=(052)×(431)=22412
代码:
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
// 计算当前排列的权值
long long calculateWeight(string s){
int n = s.size();
long long result = 1;
for(int i=0;i<n;i+=3){
string x = s.substr(i,min(3,n-i));
result*=stoll(x);//将string转化为数字
}
return result;
}
long long findMaxWeight(string x) {
// 排列字符并计算最大权值
sort(x.begin(), x.end(), greater<char>()); // 从大到小排序以优化起点
long long maxWeight = 0;
do {
maxWeight = max(maxWeight, calculateWeight(x));
} while (prev_permutation(x.begin(), x.end())); // 枚举所有排列
return maxWeight;
}
int main() {
string x;
cin >> x;
cout << findMaxWeight(x) << endl;
return 0;
}
J
代码
#include <iostream>
#include <string>
using namespace std;
string makeElegant(string s) {
int n = s.size();
for (int i = 0; i < n; ++i) {
if (s[i] == '?') {
// 尝试替换为 'A', 'B', 'C' 中的字符
for (char c : {'A', 'B', 'C'}) {
if ((i > 0 && s[i - 1] == c) || (i < n - 1 && s[i + 1] == c)) {
continue; // 如果与前后重复,跳过
}
s[i] = c; // 替换为当前字符
break;
}
} else if (i > 0 && s[i] == s[i - 1]) {
return "-1"; // 如果出现连续重复字符,返回 -1
}
}
return s;
}
int main() {
string s;
cin >> s;
cout << makeElegant(s) << endl;
return 0;
}