Codeforces 1847 A-F
题面
题解
B
题目大意:找到一组分割方法,使得
题目分析:
& | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
不难发现,因为
因此考虑贪心。设
代码略。
C
题目大意:对于数组
这套题怎么这么多位运算?
题目分析:
0 | 1 | |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
题目给定
设
于是问题转化为求最大字段异或。又因为异或运算满足结合律,可以用前缀异或加速。
问题再次转化为:求前缀异或数组中,任意两数异或的最大值。
由于
#include <bits/stdc++.h> using namespace std; int t, n, a[100010]; bool x[100010]; int main() { scanf("%d", &t); while (t--) { memset(x, 0, sizeof(x)); scanf("%d", &n); int ans = 0; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); a[i] ^= a[i - 1]; x[a[i]] = 1; ans = max(ans, a[i]); } for (int i = 1; i <= n; i++) { for (int j = 0; j < 256; j++) { if (x[j]) { ans = max(ans, a[i] ^ j); } } } printf("%d\n", ans); } return 0; }
D
从这里开始难度陡增。
(未完)
本文来自博客园,作者:cwkapn,转载请注明原文链接:https://www.cnblogs.com/chenaknoip/p/18529186
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)