最近临近开学,事情有点多,忙里偷闲来打打
A. Prefixes
思路:题意写着确保所有前缀ab均等,看起来挺高级的样子,说白了就是要求ab相见,模拟一下即可
#include <iostream>
using namespace std;
int main()
{
int n;
string s;
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> s;
int len = s.size();
int sum = 0;
for(int i=1;i<len;i+=2)
{
if(s[i]==s[i-1])
{
sum++;
if(s[i]=='a')
s[i] = 'b';
else
s[i] = 'a';
}
}
cout << sum << "\n" << s << "\n";
return 0;
}
B. Shooting
思路:耐久性射击策略,编个号直接贪心即可
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
typedef struct CAN
{
int id;
int durability;
}Can;
Can can[maxn];
bool cmp(const Can a, const Can b)
{
return a.durability>b.durability;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&can[i].durability);
can[i].id = i+1;
}
sort(can,can+n,cmp);
int sum = n;
for(int i=0;i<n;i++)
sum += can[i].durability * i;
printf("%d\n",sum);
for(int i