Codeforces Round 932 (Div. 2) ABCD
A. Entertainment in MAC#
题意:给定字符串
- 把
变为 的翻转 。 - 把
变为 。
问操作恰好
候选字符串的前缀要么是
void solve() {
cin >> n >> s;
t = s;
ranges::reverse(t);
if(t < s) cout << (t + s) << '\n';
else cout << s << '\n';
}
B. Informatics in MAC#
题意:给定数组
于是问题转化为:把数组分为两段,使得每段
预处理前缀以及后缀
void solve() {
int n; cin >> n; vector<int> a(n + 1);
rep(i, 1, n) cin >> a[i];
vector<int> pre(n + 1, 0), suf(n + 1, 0);
set<int> se;
rep(i, 0, n) se.insert(i);
rep(i, 1, n) {
if(se.find(a[i]) != end(se)) {
se.erase(a[i]);
}
pre[i] = *begin(se);
}
rep(i, 0, n) se.insert(i);
per(i, n, 1) {
if(se.find(a[i]) != end(se)) {
se.erase(a[i]);
}
suf[i] = *begin(se);
}
rep(i, 2, n) {
if(pre[i - 1] == suf[i]) {
cout << 2 << '\n';
cout << 1 << ' ' << i - 1 << '\n';
cout << i << ' ' << n << '\n';
return;
}
}
cout << -1 << '\n';
}
C. Messenger in MAC#
题意:给定
一个长度为
为各元素在排列中的位置。
在代价不大于
如果我们已经确定了所选元素,如何最小化代价。
对于
可以直观的看到,对
因此,所有数先按
令
有
直接转移是
令
所以
struct Node {
int a, b;
bool operator < (const Node &o) const {
return b < o.b;
}
};
void solve() {
int n, m; cin >> n >> m;
vector<Node> t(n + 1);
rep(i, 1, n) {
cin >> t[i].a >> t[i].b;
}
sort(All(t));
vector<vector<ll>> f(n + 1, vector<ll>(n + 1, 1e18));
int ans = 0;
rep(i, 1, n) {
if(t[i].a <= m) {
ans = 1;
}
f[1][i] = min(f[1][i - 1], (ll)t[i].a - t[i].b);
}
rep(i, 2, n) {
rep(j, i, n) {
f[i][j] = f[i - 1][j - 1] + t[j].a + t[j].b;
}
rep(j, i, n) {
if(f[i][j] <= m) {
ans = i;
}
f[i][j] = min(f[i][j - 1], f[i][j] - t[j].b);
}
}
cout << ans << '\n';
}
D. Exam in MAC#
题意:给定一个大小为
不在集合内。 不在集合内。
简单的容斥。
最后一部分的交集的充要条件为两元素奇偶性相同,直接统计即可。
void solve() {
ll n, c; cin >> n >> c;
ll ans = (c + 2) * (c + 1) / 2;
int cnt[2] = {0, 0};
rep(i, 1, n) {
int x; cin >> x;
ans -= (x / 2 + 1);
ans -= (c - x + 1);
ans += ++ cnt[x & 1];
}
cout << ans << '\n';
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧