上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 51 下一页
摘要: 容易想的题目。 考虑两数异或为 111 的性质。 结论:x⊕(x+1)=1x \oplus (x+1)=1x⊕(x+1)=1。 考虑两数 x,yx,yx,y,将每一个用二进制表示出,显然只有 20=12^0=120=1,其余 222 的幂都不可能为 111,即两数异或为 111 当且仅当这两个数二进 阅读全文
posted @ 2022-11-08 20:34 HappyBobb 阅读(31) 评论(0) 推荐(0)
摘要: S 216 J 250 阅读全文
posted @ 2022-11-07 21:47 HappyBobb 阅读(12) 评论(0) 推荐(0)
摘要: 赢麻了 省一稳了 阅读全文
posted @ 2022-11-07 19:24 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要: 考虑对 nnn 进行二进制拆分,最终可以表示成 n=2a1+2a2+⋯2apn =2^{a_1} + 2^{a_2} + \cdots 2^{a_p}n=2a1​+2a2​+⋯2ap​,ai≥0(1≤i≤p)a_i \geq 0(1 \leq i \leq p)ai​≥0(1≤i≤p)。 当 p>k 阅读全文
posted @ 2022-11-05 16:39 HappyBobb 阅读(45) 评论(0) 推荐(0)
摘要: 考虑将 0 权值设为 −1-1−1,将 1 权值设为 111。 题目即求一段最长子串使得这一串的权值和为 000。 考虑 pip_ipi​ 为权值,其中 1≤i≤n1 \leq i \leq n1≤i≤n,前缀和为 si=∑j=1ipis_i = \sum \limits_{j=1}^i p_isi 阅读全文
posted @ 2022-11-05 11:55 HappyBobb 阅读(19) 评论(0) 推荐(0)
摘要: 与最小乘积生成树类似。 考虑维护左下凸壳上的点,每次重设边权然后求最小匹配。 具体做法和上面的链接类似,只不过最小生成树部分变成了最小匹配。 代码使用费用流: #include <iostream> #include <cstdio> #include <algorithm> #include <c 阅读全文
posted @ 2022-11-02 19:54 HappyBobb 阅读(12) 评论(0) 推荐(0)
摘要: 不妨将 ∑e∈Tae\sum \limits_{e \in T} a_ee∈T∑​ae​ 和 ∑e∈Tbe\sum \limits_{e \in T} b_ee∈T∑​be​ 分别作为 x,yx,yx,y 放入平面直角坐标系,题目要求即求一个 x⋅yx \cdot yx⋅y 最小的点对 (x,y)( 阅读全文
posted @ 2022-10-24 11:15 HappyBobb 阅读(30) 评论(0) 推荐(0)
摘要: 题意 给定一个无权无向图和 ppp 个点,需要在图中删去一些点使得这 ppp 个点和点 111 均不连通且这 ppp 个点和 111 都没有被删除。问至少删除多少个点。 解法 首先先解决这样一个问题:题目要求删点,但是网络流最小割是边权,考虑转化。 对每个点 uuu 分入点和出点,入点为 uuu,出 阅读全文
posted @ 2022-10-17 12:09 HappyBobb 阅读(19) 评论(0) 推荐(0)
摘要: 题意 给定序列,多次求区间最大子段积。 解法 考虑线段树。 每个区间维护前缀最大值和最小值,后缀最大值和最小值,pushup 时只有可能最大乘以最大或最小乘以最小(负数乘以负数)。 #include <bits/stdc++.h> using namespace std; #define ll __ 阅读全文
posted @ 2022-10-15 15:38 HappyBobb 阅读(23) 评论(0) 推荐(0)
摘要: 较为基础的 DP。 考虑 dpi,jdp_{i,j}dpi,j​ 表示前 iii 个数中和除 333 余数为 jjj 的方案数,其中 j∈{0,1,2}j \in \{0, 1, 2\}j∈{0,1,2}。 定义 f(x)f(x)f(x) 表示 ∑i=lr[i≡x(mod3)]\sum \limit 阅读全文
posted @ 2022-10-14 21:58 HappyBobb 阅读(14) 评论(0) 推荐(0)
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 51 下一页