比赛 AtCoder Beginner Contest 171
Posted poi-bolg-poi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比赛 AtCoder Beginner Contest 171相关的知识,希望对你有一定的参考价值。
题意/题解
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 Pond Skater
- 题意:咕咕咕
- 题解:咕咕咕
代码
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
", 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
", 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;
}
反思:
- 太菜了。
以上是关于比赛 AtCoder Beginner Contest 171的主要内容,如果未能解决你的问题,请参考以下文章
Atcoder Beginner Contest 124 解题报告
AtCoder Beginner Contest 154 题解