AtCoder Beginner Contest 043 题解
目录
A - Children and Candies (ABC Edit)
题目大意:
求 之和
分析:
公式 / 暴力 都可
cout << (t + 1) * t / 2 << endl;
B - Unhappy Hacking (ABC Edit)
题目大意:
给一个字符串,01表示输入,B表示退格,问最后结果
分析:
按题意模拟即可
int main (){
IOS
string s1, s2 = "";
cin >> s1;
for (int i = 0 ; i < s1.size () ; i ++){
if (s1[i] != 'B'){
s2 += s1[i];
}
else {
if (!s2.empty()) s2.pop_back();
}
}
cout << s2 << endl;
return 0;
}
C - Be Together
题目大意:
找到 使得 最大。
分析:
暴力枚举即可
int main (){
IOS
int n; cin >> n;
for (int i = 1 ; i <= n ; i ++)
cin >> a[i];
int ans = 0x3f3f3f3f;
for (int i = -100 ; i <= 100 ; i ++){
int cnt = 0;
for (int j = 1 ; j <= n ; j ++){
cnt += (a[j] - i) * (a[j] - i);
}
ans = min (cnt, ans);
}
cout << ans << endl;
return 0;
}
D - Unbalanced
题目大意:
题给一个字符串,找到是否存在这样子串,子串内出现次数最多字符超过字符串长度的一半。字符串长度 。
分析:
很容易发现,对于任何满足该条件的字符串都可以找到长度为 3 的同样满足条件的子串,因此存下所有字母的位置,找是否有距离小于2的即可
vector<int> a[26];
int main (){
IOS
string s; cin >> s;
for (int i = 0 ;i < s.size () ; i ++){
a[s[i] - 'a'].push_back(i);
}
for (int i = 0 ; i < 26 ; i ++){
for (int j = 1 ; j < a[i].size () ; j ++){
if (a[i][j] - a[i][j - 1] <= 2){
cout << a[i][j - 1] + 1<< ' ' << a[i][j] + 1 << endl;
return 0;
}
}
}
cout << -1 << ' ' << -1 << endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】