随笔分类 -  黑科技——压位神器bitset

摘要:题目链接 2017 CCPC Hangzhou Problem E 题意 给定一棵树,每个点有一个权值,现在我们可以选一些连通的点,并且把这点选出来的点的权值相加,得到一个和。 求$[1, m]$里面哪些值可以被表示成选出来的点的权值和。用$01$序列的方式输出。 重现赛赛场上的我英勇无畏,大胆做$ 阅读全文
posted @ 2018-04-16 17:58 cxhscst2 阅读(775) 评论(3) 推荐(0)
摘要:题目链接 校赛签到 对每个操作之间建立关系。 比较正常的是前$3$种操作,若第$i$个操作属于前$3$种,那么就从操作$i-1$向$i$连一条有向边。 比较特殊的是第$4$种操作,若第$i$个操作属于第$4$种这个时候我们需要从操作$k$向操作$i$连一条有向边。 那么一共有$q+1$个结点,$q$ 阅读全文
posted @ 2018-01-29 02:40 cxhscst2 阅读(283) 评论(0) 推荐(0)
摘要:题目链接 Magic Matrix 考虑第三个条件,如果不符合的话说明$a[i][k] < a[i][j]$ 或 $a[j][k] < a[i][j]$ 于是我们把所有的$(a[i][j], i, j)$升序排序,然后检查当前的三元组$(a[i][j], i, j)$的时候, 先确保第一维值小于他的 阅读全文
posted @ 2017-12-14 21:45 cxhscst2 阅读(179) 评论(0) 推荐(0)
摘要:题目链接 Flights for Regular Customers 首先按照$d$的大小升序排序 然后分成$m$个时刻,每条路径一次处理过来。 $can[i][j]$表示当前时刻$i$能否走到$j$ $can$通过上一条路径后的$can$和当前的可行路径矩阵的$d$次幂得到。 这由$floyd$求 阅读全文
posted @ 2017-10-05 00:58 cxhscst2 阅读(491) 评论(0) 推荐(0)
摘要:题目链接 BZOJ 4810 首先对询问离线, 莫队算法处理。 首先我们可以用bitset维护处当前区间中是否存在某个数。 对于询问1, 我们可以用 ((f >> q[i].x) & f).any()来回答当前的询问。 对于询问2, 我们用((g >> (S - q[i].x)) & f).any( 阅读全文
posted @ 2017-09-23 00:45 cxhscst2 阅读(167) 评论(0) 推荐(0)
摘要:题目链接 LOJ6165 题目意思其实就是求LCM(1, 2, 3, ..., n) 直接用线性筛求出1到1e8之间的所有质数 然后对于每个质数p,他对答案的贡献为$p^{i}$ 其中$p^{i}$小于等于n且要最大。 c数组可能很大,所以我开了bitset... 阅读全文
posted @ 2017-08-23 15:05 cxhscst2 阅读(343) 评论(0) 推荐(0)
摘要:题目链接 Matrix multiplication 求矩阵A和B相乘的结果。 因为答案只要对3取模,所以我们可以通过一些方法来加速计算。 我们对两个矩阵各开两个bitset,分别存储模3余1和模3余2的数。 然后相乘的时候and一下就好了。 c[i][j] = f(a_one[i] & b_one 阅读全文
posted @ 2017-08-14 21:22 cxhscst2 阅读(177) 评论(0) 推荐(0)
摘要:题目链接 Eighty seven 背包(用bitset预处理)然后对于每个询问O(1)回答即可。 预处理的时候背包。 阅读全文
posted @ 2017-04-16 22:22 cxhscst2 阅读(199) 评论(0) 推荐(0)
摘要:题目链接 Summer Earnings 类似MST_Kruskal的做法,连边后sort。 然后对于每条边,依次处理下来,当发现存在三角形时即停止。(具体细节见代码) 答案即为发现三角形时当前所在边长度的一半。 阅读全文
posted @ 2017-04-16 22:13 cxhscst2 阅读(295) 评论(0) 推荐(0)