摘要: 题目分析 按位贪心。 用 \(n_i\) 表示 \(n\) 的二进制第 \(i\) 位的值。 如果 \(n_i=0\),我们肯定选择 \(a_i=b_i=1\),因为 \(1+1>0+0\)。这样 \(a,b\) 都会加上 \(2^{n_i}\)。注意:如果 \(a+2^{n_i}\) 或者 \(b 阅读全文
posted @ 2025-12-08 12:43 zhangruixiang 阅读(7) 评论(0) 推荐(0)
摘要: 二维数点。 写得有点shi。 关于我数组开小爆炸这一件事: 写代码写着写着晕了。 #include<bits/stdc++.h> #define endl '\n' using namespace std; const int maxn=1.5e6+10,V=1e6+10;//懒得改了,直接开大 i 阅读全文
posted @ 2025-12-07 20:46 zhangruixiang 阅读(7) 评论(0) 推荐(1)
摘要: 【模板】离线二维数点 新板子。 本质就是:前缀和,利用排序后逐个插入实现区间统计。 例如当统计 \([1,l]\) 时,\([l+1,r]\) 的所有数还没有被插入,所以不会影响答案。 #include<bits/stdc++.h> using namespace std; int n,m,tot= 阅读全文
posted @ 2025-12-07 10:17 zhangruixiang 阅读(5) 评论(0) 推荐(0)
摘要: 前言 这篇文章不是正经的分块,仅记录做题记录 数列分块 1 我表示这不是线段树吗 #include<bits/stdc++.h> #define int long long #define endl '\n' #define ls id<<1 #define rs id<<1|1 using nam 阅读全文
posted @ 2025-11-25 16:39 zhangruixiang 阅读(2) 评论(0) 推荐(0)
摘要: Info https://www.luogu.com.cn/article/licv4dp0 前情提要 我太蒟了。 不要用 Windows 打 CSP! 【数据删除】 T1 边打 T2 T3 T4,边想了 3h,过了。 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2025-11-17 22:25 zhangruixiang 阅读(5) 评论(0) 推荐(0)
摘要: 思路 其实这道题可以用二分图水过,不用网络流。 其中, bool find(int u){} 就是基础匈牙利算法,甚至直接用模版二分图的就可以。 为了减少篇幅,就不展开写二分图的最大匹配的定理。 但是:怎么找路径呢? 考虑存储点与点在路径上的关系: nnode[u]表示u的前一个点。 pnode[u 阅读全文
posted @ 2025-11-17 22:24 zhangruixiang 阅读(3) 评论(0) 推荐(0)
摘要: 分析 先不考虑代价,题目就只有两种操作: 把 \(x\) 变为 \(x\operatorname{AND}a\)。 把 \(x\) 变为 \(x\operatorname{OR}b\)。 容易考虑其性质:操作任意多次和操作一次的效果是一样的! 那么我们就简化了问题,把操作任意多次转化为了每个操作最多 阅读全文
posted @ 2025-11-17 22:19 zhangruixiang 阅读(1) 评论(0) 推荐(0)
摘要: 免责声明 本程序仅供学习使用! server #include <iostream> #include <string> #include <winsock2.h> #include <thread> #pragma comment(lib, "ws2_32.lib") void handle_cl 阅读全文
posted @ 2025-04-26 13:38 zhangruixiang 阅读(112) 评论(1) 推荐(0)
摘要: 题解 题目理解 我们有 \(n\) 个传送阵排成一排,每个传送阵 \(i\) 会把你传送到第 \(a[i]\) 个传送阵。小蓝可以从任意传送阵开始,每次传送到指定的传送阵,也可以使用一次魔法跳到相邻的传送阵。目标是计算小蓝最多能访问多少个不同的传送阵。 思路 实际上,我们把这些传送阵看作几个不相连的 阅读全文
posted @ 2025-04-26 13:35 zhangruixiang 阅读(19) 评论(0) 推荐(0)