![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【算法】bitset
文章平均质量分 74
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ4484】【JSOI2015】最小表示
【题目链接】点击打开链接【思路要点】单独考虑每个点的出边,这些问题是相互独立的。对原图拓扑排序,按照拓扑序解决问题。将每个点的出边按照所到达的点的拓扑序从大到小排序。若一条出边到达的点还不能由当前点到达,保留这条边,并更新当前点可达的节点集合,否则删除这条边。该过程显然可以用bitset优化。时间复杂度\(O(\frac{N*M}{w}+MLogM)\),其中\(w=64\)。【代码】#inclu...原创 2018-04-17 20:45:45 · 271 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 020
比赛链接点击打开链接官方题解点击打开链接Problem A. Move and Win注意到棋盘是二分图,任意一方玩家移动时,对手棋子所在位置的颜色与己方棋子所在位置颜色是否相同是确定的。那么一定有一方在移动时,对手棋子所在位置的颜色与己方棋子所在位置颜色是相同的,从而该玩家不可能被对手阻挡。那么,该玩家只需每一步都向对手棋子的方向走就可以确保胜利。时间复杂度 O(1)O(1)O(...原创 2019-09-02 20:36:32 · 391 阅读 · 0 评论 -
【CodeForces1167G】Low Budget Inception
【题目链接】点击打开链接【思路要点】考虑旋转时被卡住的情况,共有两种。111 、建筑的端点撞到地面。222 、建筑与建筑相撞。情况 111 只需要找到折点左右最近的建筑即可。考虑情况 222 ,可以发现,可能相撞的只有建筑的顶点,且若左侧建筑物距离折点为 xxx ,只有右侧距离折点 x−1,x,x+1x-1,x,x+1x−1,x,x+1 处的建筑可能与其相撞,若坐标值域较...原创 2019-08-28 13:47:04 · 234 阅读 · 0 评论 -
【LOJ3101】「JSOI2019」精准预测
【题目链接】点击打开链接【思路要点】显然有 2−sat2-sat2−sat 建图,注意到只有致死预测,且难兄难弟型预测存在时间先后关系,所建出的图应当不存在环。记 livei,deadilive_i,dead_ilivei,deadi 分别表示 T+1T+1T+1 时刻时表示 iii 生/死的变量。由于只有致死预测,当且仅当以下全部条件成立, Live(i,j)=1Liv...原创 2019-06-20 14:23:55 · 1585 阅读 · 0 评论 -
【省内训练2019-06-03】Graph
【思路要点】首先考虑 Type=0Type=0Type=0 的做法。矩阵 AiA^iAi 的 (x,y)(x,y)(x,y) 处的元素表示从 xxx 出发走 iii 步是否能够到达 yyy 。问题即为令 xxx 为一个足够大的数,找到最小的 ddd ,使得 Ax+d=AxA^{x+d}=A^xAx+d=Ax 。定义无向图 GGG 是 kkk 分图,当且仅当可以给其中每一个点 iii 拟...原创 2019-06-06 15:25:00 · 201 阅读 · 0 评论 -
【CodeForces】Hello 2019 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Gennady and a Card Game【思路要点】按照题意模拟。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef lo...原创 2019-01-09 13:01:13 · 916 阅读 · 2 评论 -
【省内训练2018-10-28】网友串
【思路要点】首先,奇数和偶数可以分开处理,最后再将答案卷积得到最终答案。预处理每一对网友数是否能够构成混沌串。我们用三元组 (i,j,s)(i,j,s)(i,j,s) 来描述一个状态,表示处理了前 iii 个数,出现了 jjj 个混沌串,并且能与集合 sss 中的串组成混沌串的字符串出现过至少 111 次。一个直观的想法是动态规划,记 dpi,j,sdp_{i,j,s}dpi,j,s...原创 2018-10-31 20:04:01 · 304 阅读 · 0 评论 -
【省内训练2018-10-26】网友数
【思路要点】首先,当 k≥9k≥9k≥9 ,任何 ≥28≥28≥28 的数 xxx 均为网友数。 (1)(1)(1)(1)(1)(1) 的证明:当 x≤1000x≤1000x≤1000 ,我们可以暴力验证命题的正确性。否则,考虑 xxx 的末位,我们可以用 999 个 444 或是 777 造出 000 至 999 以内的任何末位,这样,我们可以在 xxx 中将造出的数减去, xxx ...原创 2018-10-26 19:25:52 · 382 阅读 · 0 评论 -
【CodeForces】Mail.Ru Cup 2018 Round 1 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Elevator or Stairs?【思路要点】按照题意计算两种方式的用时,取较优的方案采纳。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5...原创 2018-10-21 14:28:31 · 794 阅读 · 1 评论 -
【CodeForces】Avito Code Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Antipalindrome【思路要点】当所有字符相同,答案为 000 。否则,若原串为回文串,删去其最后一个字符一定会使其变成非回文串,因此答案为 N−1N-1N−1 ,否则答案为 NNN 。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h...原创 2018-10-25 19:56:20 · 388 阅读 · 0 评论 -
【CodeForces】CodeForces Round #403 (Div. 1) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Andryusha and Colored Balloons【思路要点】 显然答案有下界:Max{di+1}Max{di+1}Max\{d_i+1\},其中didid_i为点iii的度数。 我们用构造的方式来说明这个下界是可以取到的。 将度数最大的点作为根...原创 2018-08-07 20:51:15 · 399 阅读 · 0 评论 -
【BZOJ4671】异或图
【题目链接】 点击打开链接 【思路要点】 直接考虑联通的情况比较困难,我们考虑枚举NNN个元素的所有集合划分的方案,并强制不同的集合间不能有边,计算合法的方案数,再用容斥原理计算答案。 记fxfxf_x表示在上述过程中所有划分成xxx个集合的划分方案的合法方案数之和(注意同一个子集选取方案可能被计算多次)。 令gxgxg_x表示使得图中恰好有xxx个联...原创 2018-06-26 17:32:02 · 540 阅读 · 0 评论 -
【BZOJ5109】【CodePlus2017】大吉大利,晚上吃鸡!
【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 50005#define INF 1e18#define P 1000000007template <typename T> void read(T &x) { x = 0; int...原创 2018-06-13 21:04:00 · 394 阅读 · 0 评论 -
【CodeForces】Codeforces Round 583
比赛链接点击打开链接官方题解点击打开链接Problem A*. Optimal Currency Exchange注意到美元所有的面值均为 111 的倍数,不妨认为只可以兑换 111 美元。类似地,也可以认为只可以兑换 555 欧元。则我们需要使得 xd+5yexd+5yexd+5ye 尽可能接近 NNN 。枚举 yyy ,并用除法计算可能到达的最近的值即可。时间复杂度 O...原创 2019-09-05 14:12:56 · 270 阅读 · 0 评论