Codeforces Round 984 Div. 3 题解
Codeforces Round 984 (Div. 3)
Rated:
场切:AB(懒得做了)
赛后:CDEF
不会:G
-
A. Quintomania
简单模拟。
-
B. Startup
找到价值前
大的物品总和,相加。 -
C. Anya and 1100
字符串模拟。可以用
find()
函数 -
D. I Love 1543
字符串模拟。
-
E. Reverse the Rivers
二分即可。
-
F. XORificator 3000
前置知识:
设 表示 的前缀异或和所以可以快速求出
的异或和为 。观察对
同余的数的二进制位。例如 。
可以发现后 位对异或和没有有影响,只有前几位有影响,因此区间不有趣整数的前缀异或和 计算方式如下:其中
即为区间不有趣整数的数量。点击查看代码
#include <bits/stdc++.h> using namespace std; #define int unsigned long long int f(int n){ if (n % 4 == 0) return n; if (n % 4 == 1) return 1; if (n % 4 == 2) return n + 1; return 0; } int g(int n, int i, int k){ if (i == 0){ if (k == 0) return f(n); else return 0; } int pow2 = 1ull << i; if (n < k) return 0; int m = (n - k) / pow2; int cnt = m + 1,res = f(m) << i; if (cnt % 2 == 1) res ^= k; return res; } void solve(){ int l, r, k, i; cin >> l >> r >> i >> k; int sum = f(r) ^ f(l - 1),Xor = g(r, i, k) ^ g(l - 1, i, k); int ans = sum ^ Xor; cout << ans << endl; } signed main(){ int T; cin >> T; while(T--) solve(); return 0; }
-
G. Library of Magic
分类:
Codeforces比赛题解合集
标签:
题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具