bitset 主要存储二进制数位。 bitset 就像一个 bool 类型的数组一样,但是有空间优化—— bitset 中的一个元素只相当于一个 char 元素所占空间的八分之一。 bitset 中的每个元素都能单独被访问,例如对于一个叫做 x 的bitset,表达式 x[3] 访问了它的第 4 个 ...
分类:
其他好文 时间:
2019-07-13 20:13:05
阅读次数:
107
"传送门" 70+Hack数据真是壮观~ 不难考虑到一个暴力的做法:设$f_{i,j}$表示在第$i$个点、从第$j$个doge跳过来的最短距离,因为边权为$1$所以就是个BFS,复杂度$O(NM)$。 注意到可以优化一些状态:设$f_{i,j}$表示在第$i$个点、当前的doge的步长为$j$的方 ...
bitset的经典优化,即把可行性01数组的转移代价降低 bitset的适用情况,当内层状态只和外层状态的上一个状态相关,并且内层状态的相关距离是一个固定的数,可用bitset,换言之,能用滚动数组是能用bitset优化的前提 ...
分类:
编程语言 时间:
2019-07-13 17:23:37
阅读次数:
161
口胡一种别的解法: 三重退背包,g1[j]k]表示不选x的选了j件物品,体积为k的方案数,g[0][0] = 1 , g1[j][k]=dp[j][k]-g1[j-1][k-a[x]] 然后按这样再退三层,最后看g3[10][87]的方案数是否非0即可,这样复杂度是O(50*50*50*10*87) ...
分类:
其他好文 时间:
2019-07-13 12:02:27
阅读次数:
185
include include include include include include include include include include include include include include include using namespace std; typedef l ...
分类:
其他好文 时间:
2019-07-10 15:18:46
阅读次数:
101
题面。。(我好困啊。。。) 这题的想法确实很巧妙,由于只有除自身外所有奶牛都爱慕奶牛a时,a才是明星奶牛,那么很显然,这说明不可能存在两个不同的强连通分量里都是出度为0,即为明星奶牛的情况,那样就不可能使除自己外所有奶牛爱慕同一强连通分量中的奶牛,so,tarjan+缩点+倒叙查找 代码实现: 嗯我 ...
分类:
其他好文 时间:
2019-07-10 09:16:37
阅读次数:
119
要求≥3,所以只需找3个 当这一位是a时,判断以a为中心的前后两段是否回文 若是,说明所有和a等差的项都出现过 如果不是,说明一项在前一项在后 因为是1到N的排列,所以一定存在这样的项 bitset代替线段树维护hash值 ...
分类:
其他好文 时间:
2019-07-07 12:41:14
阅读次数:
98
我真没什么创意了woc。。 so,为什么一道水题是蓝色的???哦哦哦,水好像就是蓝色的,emmm那就不是恶意评分了嘤嘤嘤 。。。 好吧实际上可能是非c党对于字符串的处理需要进行编号和结构体,会麻烦一点吧。。。 ok说题目,这题实际上也没啥好说的,map+并查集,最基本的并查集,然后,就过了。顺带一提 ...
分类:
其他好文 时间:
2019-07-04 13:02:25
阅读次数:
93
这一题由于数据较多,我们考虑离线处理。 分治。对于两个点s,t,如果起点在mid这条横线上方,终点在下方,那么它必定会穿过mid这条线。所以只要s可以到mid上一点x,x可以到t,st就是安全的。 用bitset维护。设$f1[i][j]$为上方ij到mid这条线的是否可以的01值,$f2[i][j ...
分类:
其他好文 时间:
2019-07-02 17:34:44
阅读次数:
127
1 //移位,通过和1进行与操作 2 class Solution { 3 public: 4 int hammingWeight(uint32_t n) { 5 int res=0; 6 while(n)//while n==0,quit while 7 { 8 res+=n&1; 9 ... ...
分类:
其他好文 时间:
2019-07-01 10:50:16
阅读次数:
90