上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 65 下一页
摘要: A:注意到模数是要求lcm的数的倍数,直接先取模就可以了。考场脑抽,对其质因数分解判了一下每个因子有没有,当然也行。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #in 阅读全文
posted @ 2018-10-01 15:29 Gloid 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 显然贪心地有尽量先往容量大的背包里放。设f[i]为i子集物品最小占用背包数,g[i]为该情况下最后一个背包的剩余容量,转移显然。 阅读全文
posted @ 2018-09-30 12:00 Gloid 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 每次询问所获得的可以看做是两个前缀和的异或。我们只要知道任意前缀和的异或就可以得到答案了。并且显然地,如果知道了a和b的异或及a和c的异或,也就知道了b和c的异或。所以一次询问可以看做是在两点间连边,所要求的东西就是最小生成树了。 阅读全文
posted @ 2018-09-29 15:03 Gloid 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 对合并过程建树。然后只需要按照时间顺序考虑每个反应就行了,时间顺序根据lca的深度确定。 阅读全文
posted @ 2018-09-29 13:17 Gloid 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 考虑对于每一个点维护子树内与其连通的点的信息。为了换色需要,记录每个点黑白两种情况下子树内连通块的大小。 查询时,找到深度最浅的同色祖先即可,这可以比较简单的树剖+线段树乱搞一下(似乎就是qtree3),具体的,可以维护一下区间是否全黑/白,线段树上二分。换色会造成一个连通块分裂并产生新连通块,这只 阅读全文
posted @ 2018-09-29 03:15 Gloid 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 不是很懂为什么数据范围要开的这么诡异,想到正解都不敢写。用类似NOI2014动物园的方法,对每个后缀求出类似next的数组即可。 阅读全文
posted @ 2018-09-28 18:59 Gloid 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 显然可以转化为一个阶梯状01矩阵每行每列取一个使权值和为k的方案数。直接做不可做,考虑设f[i][j]为前i行权值和至少为j,即在其中固定了j行选1的方案数。设第i行从1~a[i]列都是1且a[i]+1列是0,则f[i][j]=f[i-1][j]+f[i-1][j-1]*(a[i]-j+1)。剩下的 阅读全文
posted @ 2018-09-28 02:33 Gloid 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 看到数据范围就可以猜到数位dp了。显然对于一个数最后移到的位置应该是其中位数。于是考虑枚举移到的位置,那么设其左边和为l,左右边和为r,该位置数为p,则需要满足l+p>=r且r+p>=l。同时为了防止重复,枚举的应该是最左的能移到的位置,那么还需要满足l<p+r。算的时候枚举p、l、r,统计方案数, 阅读全文
posted @ 2018-09-27 22:54 Gloid 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 不明白在某谷上是怎么标到紫的。二分答案或者发现答案就是最大逆序差的一半。 阅读全文
posted @ 2018-09-27 12:24 Gloid 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 显然确定一个点的权值后整棵树权值确定。只要算出根节点的权值就能知道两种改法是否等价。 乘的话显然会炸,取log即可。map似乎会出一些问题,sort即可。 阅读全文
posted @ 2018-09-27 00:42 Gloid 阅读(114) 评论(0) 推荐(0) 编辑
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 65 下一页