上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 65 下一页
摘要: 要多简单有多简单。然而不知道为啥在luogu上过不掉。 阅读全文
posted @ 2018-08-31 16:05 Gloid 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 对于排列计数问题一般把数按一个特定的顺序加入排列。这个题做法比较显然,考虑将数从小到大加入排列即可。 阅读全文
posted @ 2018-08-31 15:39 Gloid 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 这个东西似乎叫摩尔投票法。注意到这里众数的出现次数大于其他数的出现次数之和。考虑cnt表示当前所找到的众数比其他数出现次数多多少,每次更新如果cnt<0就把众数选做当前数。正确性感性理解一下,不妨把非众数的数看成同一种数,这样的话正确性显然,现在非众数的数可能不一样那就更对了。 阅读全文
posted @ 2018-08-31 13:29 Gloid 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 虽然不一定每次都是由编号小的点向编号大的走,但一个人摧毁的顺序一定是从编号小的到编号大的。那么在摧毁据点x的过程中,其只能经过编号小于x的点。并且这样一定合法,因为可以控制其他人先去摧毁所经过的点。那么可以floyd求出由摧毁x到摧毁y的最短路径。注意这里也需要更新起点编号大于终点的情况,否则flo 阅读全文
posted @ 2018-08-31 12:20 Gloid 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 比较难想到的是将题目中的要求看做异或。那么有ai,j^ai+1,j^ai,j+1^ai+1,j+1=1。瞎化一化可以大胆猜想得到a1,1^a1,j^ai,1^ai,j=(i-1)*(j-1)&1。也就是说,确定第一行和第一列的颜色,就可以确定整个矩阵。现在如果没有已填的格子的限制,答案就是2n+m- 阅读全文
posted @ 2018-08-30 18:22 Gloid 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 设最后的组成为x=x0a+x1b,y=y0a+y1b。那么容易发现x0和y0奇偶性相同、x1和y1奇偶性相同。于是考虑奇偶两种情况,问题就变为是否存在x和y使ax+by=c,那么其充要条件是gcd(a,b)|c。 阅读全文
posted @ 2018-08-30 08:40 Gloid 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 令f[i][j]表示连i条边时奇点个数为j的方案数,转移时讨论两奇点相连、一奇一偶相连、两偶点相连即可。注意这样会造成重边,那么算出恰好有一条重边的方案数并减掉。由于是有序地考虑每条边,每次还要除以i。 阅读全文
posted @ 2018-08-30 00:35 Gloid 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 根据组合意义,有nk=ΣC(n,i)*i!*S(k,i) (i=0~k),即将k个有标号球放进n个有标号盒子的方案数=在n个盒子中选i个将k个有标号球放入并且每个盒子至少有一个球。 回到本题,可以令f[i][j]表示ΣC(dis(i,k),j) (k为i子树中节点),通过C(i,j)=C(i-1,j 阅读全文
posted @ 2018-08-29 13:03 Gloid 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 容易想到一种暴力的做法:枚举中间的位置,设该位置权值为x,如果其两边存在权值关于x对称即合法。 问题是如何快速寻找这个东西是否存在。考虑仅将该位置左边出现的权值标1。那么若在值域上若关于x对称的两权值标号不同,说明他们的位置分别在两侧,也就说明存在等差子序列。那么只需要判断整体是否相同,哈希即可。 阅读全文
posted @ 2018-08-28 21:03 Gloid 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 显然这样的路径一定是选择了与1相邻的不同的两点分别作为起点和终点(除1本身)。如果能将每一组起点终点都计算到就可以得出最优解了。暴力显然不行。注意到我们每次求出的是单源最短路径,考虑如何充分利用信息。那么有一种神奇的方法:按照编号的二进制的某一位给所有与1相邻的点分组,一组作为起点另一组作为终点,然 阅读全文
posted @ 2018-08-28 02:31 Gloid 阅读(241) 评论(0) 推荐(0) 编辑
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 65 下一页