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,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库