题意/题解
A αlphabet
- 题意:输入一个字母,如果是大写输出 \(A\) 小写输出 \(a\)。
- 题解:按题目说的做
B Mix Juice
- 题意:给你 \(n\) 个数,输出前 \(k\) 大的数的和
- 题解:排序。
C One Quadrillion and One Dalmatians
- 题意:给你一个数,类似转换成 \(26\) 进制。
- 题解:进制转换。
D Replacing
- 题意:给你 \(n\) 个数, 有 \(q\) 次操作,第 \(i\) 次操作是把 \(n\) 个数中全部的 \(b_i\) 换成 \(c_i\) 并输出操作完后的 \(n\) 个数的和
- 题解:暴力。记录每个数出现的次数,把 \(b\) 全换成 \(c\) 的时候就暴力。
E Red Scarf
- 题意:有一个序列 \(A\),现在给你一个序列 \(B\),\(b_i\) 表示序列 \(A\) 中除去 \(a_i\) 的异或和,求出序列 \(A\)
- 题解:把序列 \(B\) 中的第 \(i\) 个数与第 \(j\) 个数异或得到 \(a_i \oplus a_j\),然后把 \((a_1 \oplus a_2) \oplus (a_1 \oplus a_3) \oplus \dots \oplus (a_1 \oplus a_n)\) 得到 \(a_1 \oplus a_2 \oplus \dots \oplus a_n\) 然后用 \(a_1 \oplus a_2 \oplus \dots \oplus a_n\) 与序列 \(B\) 中的第 \(i\) 个元素异或得到 \(a_i\)。
F
代码
A αlphabet
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
int main() {
char ch;
scanf("%c", &ch);
if (ch >= 'a' && ch <= 'z') puts("a");
else puts("A");
return 0;
}
B Mix Juice
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define MAXN 1001
int n ,k, ans, a[MAXN];
int main() {
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
std::sort(a + 1, a + n + 1);
for (int i = 1; i <= k; ++i) {
ans += a[i];
}
printf("%d\n", ans);
return 0;
}
C One Quadrillion and One Dalmatians
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
long long n;
void solve(long long x) {
if (x != 0) {
int d = x % 26;
if (d == 0) solve (x / 26 - 1);
else solve(x / 26);
if(d == 0) putchar('z');
else putchar(d+'a'-1);
}
}
int main() {
scanf("%lld", &n);
solve(n);
return 0;
}
D Replacing
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define MAXN 100001
int n, q, times[MAXN];
long long ans;
int main() {
scanf("%d", &n);
for (int i = 1, x; i <= n; ++i) {
scanf("%d", &x);
ans += x;
++times[x];
}
scanf("%d", &q);
for (int i = 1, b, c; i <= q; ++i) {
scanf("%d %d", &b, &c);
ans -= 1ll * times[b] * b;
ans += 1ll * times[b] * c;
printf("%lld\n", ans);
times[c] += times[b];
times[b] = 0;
}
return 0;
}
E Red Scarf
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define MAXN 200001
typedef long long ll;
ll n, a[MAXN], ans;
int main() {
scanf("%lld", &n);
for (int i = 1; i <= n; ++i) scanf("%lld", &a[i]);
for (int i = 2; i <= n; ++i) {
ans ^= a[i] ^ a[1];
}
for (int i = 1; i <= n; ++i) {
printf("%lld ", ans ^ a[i]);
}
return 0;
}
反思: