AtCoder Beginner Contest 194 Editorial
A - I Scream
根据 奶脂率 和 乳脂率 判断是何种冰淇淋
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int a, b;
cin >> a >> b;
a = a + b;
if (a >= 15 && b >= 8) cout << 1;
else if (a >= 10 && b >= 3)
cout << 2;
else if (a >= 3)
cout << 3;
else
cout << 4;
return 0;
}
B - Job Assignment
分开存储,循环判断。如果是同一个人完成任务则总时间累计
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
vector<int> a, b;
int n, ans = 1e9 + 5;
cin >> n;
a.resize(n);
b.resize(n);
for (int i = 0; i < n; ++i) {
cin >> a[i] >> b[i];
}
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j) {
if (i == j) ans = min(ans, a[i] + b[j]);
else
ans = min(ans, max(a[i], b[j]));
}
cout << ans;
return 0;
}
C - Squared Error
公式推导
注意用 long long
,溢出了WA了我3次....
using ll = long long;
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
vector<ll> a(n);
ll sos = 0, sum = 0; // sos sum of squares
for (ll &x : a) cin >> x;
for (int i = 0; i < n; i++) {
sos += a[i] * a[i];
sum += a[i];
}
cout << n * sos - sum * sum << endl;
return 0;
}
D - Journey
按题意来即可,注意输出位数来保持精度
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
double cnt = 0.0;
for (int i = 1; i < n; ++i) {
cnt += 1.0 * n / (n - i);
}
cout << setprecision(20) << cnt << "\n";
return 0;
}
E - Mex Min
熟悉的定义...
using ll = long long;
ll n, m, a[5000005], s[5000005], mina, temp = 1;
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
if (i <= m) s[a[i]]++;
}
for (int i = 0; i <= n; i++) {
if (s[i] == 0) {
mina = i;
break;
}
}
for (int i = m + 1; i <= n; i++) {
s[a[temp]]--;
s[a[temp + m]]++;
if (a[temp] < mina && s[a[temp]] == 0) {
// cout<<a[temp];
mina = min(mina, a[temp]);
}
temp++;
}
cout << mina;
return 0;
}
F - Digits Paradise in Hexadecimal
不会,先记录下dalao们的解法
__builtin_popcount()
用于计算一个 32 位无符号整数有多少个位为1
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); i++)
using ll = long long;
constexpr int MOD = 1e9 + 7;
long long dp[2][17];
string s;
int n, k, m, a, e;
int main() {
cin >> s >> k;
for (char c : s) {
a = '0' <= c && c <= '9' ? c - '0' : c - 'A' + 10;
rep(i, 16) dp[e][i + 1] =
(dp[e ^ 1][i] * (16 - i) + dp[e ^ 1][i + 1] * (i + 1)) % MOD;
dp[e][1] += m ? 15 : a - 1;
if (m) {
int t = __builtin_popcount(m), b1 = t - __builtin_popcount(m >> a);
dp[e][t + 1] += a - b1;
dp[e][t] += b1;
}
m |= 1 << a;
e ^= 1;
}
dp[e ^ 1][__builtin_popcount(m)] += 1;
cout << dp[e ^ 1][k] % MOD << endl;
}
分类:
刷题笔记: AtCoder
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
2020-03-11 PTA | 1029 旧键盘 (20分)
2020-03-11 关于竞赛大佬常用的 static const auto _ = []() 用法解析
2020-03-11 LeetCode | 1013. 将数组分成和相等的三个部分