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
大意:计算数组中“好”的非空前缀的数量。一个前缀是“好”的,如果它包含了一个元素,这个元素等于其他所有元素的和。
思路:前缀和