VP Codeforces Round 908 (Div. 2)
A - Secret Sport
题意:两个人比赛,每有一个人赢了
去求
点击查看代码
void solve() {
int n;
std::cin >> n;
std::string s;
std::cin >> s;
std::cout << s.back() << "\n";
}
B. Two Out of Three
题意:题意,给你一个
- 有一个
使得 , , . - 有一个
使得 , , . - 有一个
使得 , , .
对于每一类数,他们只能有两个不同的值,否则就会同时满足三个条件。那么让每个个数大于等于
点击查看代码
void solve() {
int n;
std::cin >> n;
std::vector<int> a(n);
for (int i = 0; i < n; ++ i) {
std::cin >> a[i];
}
std::map<int, std::vector<int> > mp;
for (int i = 0; i < n; ++ i) {
mp[a[i]].push_back(i);
}
std::vector<int> b(n, 1);
int cnt = 0;
for (auto & [x, a] : mp) {
if (a.size() >= 2) {
if (cnt == 0) {
b[a[1]] = 2;
} else if (cnt == 1) {
b[a[1]] = 3;
}
++ cnt;
}
}
if (cnt < 2) {
std::cout << -1 << "\n";
} else {
for (int i = 0; i < n; ++ i) {
std::cout << b[i] << " \n"[i == n - 1];
}
}
}
C. Anonymous Informant
题意:如果
模拟一下发现,因为
点击查看代码
void solve() {
int n, k;
std::cin >> n >> k;
std::vector<int> a(n);
for (int i = 0; i < n; ++ i) {
std::cin >> a[i];
}
int x = 0;
std::vector<int> st(n);
st[0] = 1;
for (int i = 0; i < std::min(n, k); ++ i) {
if (a[n - 1 - x] > n) {
std::cout << "NO\n";
return;
}
x += a[n - 1 - x];
x %= n;
if (st[x]) {
std::cout << "YES\n";
return;
}
st[x] = 1;
}
std::cout << "YES" << "\n";
}
D. Neutral Tonality
做过最简单的
题意:给你两个数组
如果
点击查看代码
void solve() {
int n, m;
std::cin >> n >> m;
std::vector<int> a(n), b(m);
for (int i = 0; i < n; ++ i) {
std::cin >> a[i];
}
for (int i = 0; i < m; ++ i) {
std::cin >> b[i];
}
std::vector<int> ans;
std::sort(b.begin(), b.end(), std::greater<int>());
int j = 0;
for (int i = 0; i < n; ++ i) {
while (j < m && b[j] >= a[i]) {
ans.push_back(b[j ++ ]);
}
ans.push_back(a[i]);
}
while (j < m) {
ans.push_back(b[j ++ ]);
}
for (int i = 0; i < n + m; ++ i) {
std::cout << ans[i] << " \n"[i == n + m - 1];
}
}
E. Freedom of Choice
题意:
我们可以枚举选
点击查看代码
void solve() {
int m;
std::cin >> m;
std::map<i64, std::vector<std::pair<int, i64> > > mp;
std::vector<std::array<i64, 4> > a(m);
i64 suml = 0, sumr = 0;
for (int i = 0; i < m; ++ i) {
i64 n, l, r;
std::cin >> n >> l >> r;
suml += l, sumr += r;
std::vector<i64> b(n), c(n);
for (int j = 0; j < n; ++ j) {
std::cin >> b[j];
}
for (int j = 0; j < n; ++ j) {
std::cin >> c[j];
}
i64 tot = 0;
for (int j = 0; j < n; ++ j) {
mp[b[j]].push_back({i, c[j]});
tot += c[j];
}
a[i] = {n, l, r, tot};
}
for (i64 i = suml; i <= sumr; ++ i) {
if (!mp.count(i)) {
std::cout << 0 << "\n";
return;
}
}
i64 ans = 1e18;
for (i64 i = suml; i <= sumr; ++ i) {
i64 sum = sumr, res = 0;
for (auto & [id, cnt] : mp[i]) {
auto & [n, l, r, tot] = a[id];
sum -= r;
if (tot - cnt < l) {
res += l - (tot - cnt);
sum += l;
} else {
sum += std::min(r, tot - cnt);
}
}
res += std::max(0ll, i - sum);
ans = std::min(ans, res);
}
std::cout << ans << "\n";
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具