A Creating Words
思路:拿一个容器交换两数值即可
#include<bits/stdc++.h>
using namespace std;
const int N = 100001;
char a[N],b[N];
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s %s",a,b);
char jiaohuan = a[0];
a[0] = b[0];
b[0] = jiaohuan;
printf("%s %s\n",a,b);
}
return 0;
}
B. Maximum Multiple Sum
思路点拨:目的是找出一个整数 a,使得 a 到 n 之间所有 a 的倍数的和最大
对于任何小于等于 n 的整数 a,其倍数的和可以通过求和公式计算:
#include <iostream>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while (t--) {
int n;
scanf("%d",&n);
int op = 0;
int max_sum = 0;
// 遍历所有可能的a值,计算最大和
for (int a = 2; a <= n; a++)
{
int sum = 0;
int k = n / a; // 计算小于等于n的a的倍数的数量
for (int i = 1; i <= k; i++)
{
sum += i * a;
}
if (sum > max_sum)
{
max_sum = sum;
op = a;
}
}
printf("%d\n",op);
}
return 0;
}
C. Good Prefixes
大意:计算数组中“好”的非空前缀的数量。一个前缀是“好”的,如果它包含了一个元素,这个元素等于其他所有元素的和。
思路:前缀和