KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)(AB水题,C思维,D搜索,E DP)
补题链接:Here
A - Century
整除
B - 200th ABC-200
按题意即可
C - Ringo's Favorite Numbers 2
求出
using ll = long long;
void solve() {
ll ans = 0;
int n, a[210] = {0};
cin >> n;
for (ll i = 1, x; i <= n; ++i) {
cin >> x;
x %= 200;
ans += a[x];
a[x]++;
}
cout << ans << '\n';
}
D - Happy Birthday! 2
搜索情况
int n, a[205];
vector<int> c[205], b;
void dfs(int x, int sum) {
if (c[sum].size() && b != c[sum]) {
cout << "Yes\n";
cout << b.size() << ' ';
for (int i : b) cout << i << ' ';
cout << "\n";
cout << c[sum].size() << ' ';
for (int i : c[sum]) cout << i << ' ';
cout << "\n";
exit(0);
} else if (b.size())
c[sum] = b;
if (x == n + 1) return;
dfs(x + 1, sum);
b.push_back(x), dfs(x + 1, (sum + a[x]) % 200), b.pop_back();
}
void solve() {
cin >> n;
for (int i = 1; i <= n; ++i) cin >> a[i];
dfs(1, 0);
cout << "No\n";
}
E - Patisserie ABC 2
DP
using ll = long long;
const int N = 3e6 + 10;
ll f[4][N];
void solve() {
ll n, k;
cin >> n >> k;
f[0][0] = 1;
for (int i = 1; i <= 3; i++)
for (int j = 1; j <= 3 * n; j++)
f[i][j] = f[i][j - 1] + f[i - 1][j - 1] - (j > n ? f[i - 1][j - 1 - n] : 0);
ll s;
for (s = 3; k > f[3][s]; s++)
k -= f[3][s];
for (int i = 2, v; i >= 1; i--) {
for (v = 1; k > f[i][s - v]; v++)
k -= f[i][s - v];
cout << v << " ";
s -= v;
}
cout << s << "\n";
}
【推荐】国内首个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-05-11 C 与 C++ 区别