码迷,mamicode.com
首页 > 其他好文 > 详细

【比赛】 AtCoder Beginner Contest 171

时间:2020-06-21 23:08:15      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:现在   turn   cst   put   cin   putchar   typedef   print   scanf   

题意/题解

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\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;
}

反思:

  • 太菜了。

【比赛】 AtCoder Beginner Contest 171

标签:现在   turn   cst   put   cin   putchar   typedef   print   scanf   

原文地址:https://www.cnblogs.com/poi-bolg-poi/p/13174254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!