上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页
摘要: 解:发现我们对a和b做一个集合卷积,对d和e做一个^FWT,然后把这三个全部对位乘上斐波那契数,然后做&FWT就行了。 1 #include <bits/stdc++.h> 2 3 const int N = 150010, MO = 1e9 + 7, inv2 = (MO + 1) / 2; 4 阅读全文
posted @ 2019-04-17 15:28 huyufeifei 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 解:有两种做法...... 第一种,按照秘密袭击coat的套路,我们只需要求出即可。因为一种操作了i次的方案会被恰好计数i次。 那么这个东西怎么求呢?直接用FWT的思想,对于一个状态s,求出选择s所有子集的概率ps。那么第i次操作后是s的子集的概率就是psi。 设fs表示第i次操作之后是s的子集的概 阅读全文
posted @ 2019-04-17 10:20 huyufeifei 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 解:有一个很显然的状压...... 就设f[s]表示选的点集为s的时候所有方案的权值和。 于是有f[s] = f[s \ t] * (sum[t] / sum[s])P。 这枚举子集是3n的。 然后发现这是子集卷积,参考资料。 于是就FWT搞一下...看代码 1 #include <bits/std 阅读全文
posted @ 2019-04-17 08:50 huyufeifei 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题意:给你三棵树,求所有点对在三棵树上的距离和中的最大值。 解:首先有个暴力,然后还有个迭代乱搞,可以得到61分... 1 namespace bf { 2 inline void solve() { 3 for(int i = 1; i <= n; i++) { 4 for(int j = i; 阅读全文
posted @ 2019-04-16 16:28 huyufeifei 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题意:给定两棵树T1,T2,求d1[x] + d1[y] - d1[lca1(x, y)] - d2[lca2(x, y)]的最大值。 解:考虑把上面这个毒瘤东西化一下。发现它就是T1中x,y到根的路径并 - T2中x,y到根的路径交。 也就是T1中的一个三叉状路径和T2中lca到根的路径。 根据情 阅读全文
posted @ 2019-04-16 09:11 huyufeifei 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 跟点分治差不多的东西,先转二叉,然后找边,分治。可以动态,还听说有个骚操作叫边分树合并... 注意虚点虚边的处理!注意边分治不能善终,_n = 1的时候特判。 1 void rebuild(int x, int f) { 2 int temp = 0; 3 for(int i = 0; i < (i 阅读全文
posted @ 2019-04-14 19:25 huyufeifei 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题意:给定树,有点权。求一条路径使得最小点权 * 总点数最大。只需输出这个最大值。5w。 解:树上路径问题,点分治。 考虑合并两个子树的时候,答案的形式是val1 * (d1 + d2),当1是新插入的节点的时候,只需在val比它大的点中选出一个最大的d2,这树状数组就可以做到。 当2是新插入的节点 阅读全文
posted @ 2019-04-14 19:01 huyufeifei 阅读(174) 评论(0) 推荐(0) 编辑
摘要: T1 题意:你要进行n次操作,第i次选择一个数k∈[1,i],并插入到当前序列的第k个位置。给定目标序列,输出操作序列。100,2s。 解:冷静分析一波,我们可以从后往前确定操作序列。这样每次确定一个操作之后就会删除一个数。 如果有ai = i的位置那我们显然可以把这个i操作放到操作序列最后。如果有 阅读全文
posted @ 2019-04-10 14:48 huyufeifei 阅读(275) 评论(0) 推荐(0) 编辑
摘要: T1 题意:给你一个串,求所有子序列个数,满足没有相同字符。1e5,2s。 解:考虑一个合法的子序列。其中每个字母的出现位置都有(出现次数)种选择。还可以不选,要 + 1。 然后乘起来就做完了。如果变成子串的话更简单,每个位置为开头的长度不会超过26,直接暴力。本质不同子串就开个hash池判重。 本 阅读全文
posted @ 2019-04-10 09:30 huyufeifei 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 解:有个暴力是枚举两条链然后O(n)判定,可以得到15分。 还可以优化一下,枚举一条链,然后第二条链直接求两端点树上带权距离。可以做到O(m(n + m)),但是我用的树剖,跟上面那一档没啥区别Orz... 然后是链的部分,把所有链按照左端点小到大排序,左端点相同的时候按右端点小到大。 然后从右往左 阅读全文
posted @ 2019-04-09 20:07 huyufeifei 阅读(301) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页
试着放一个广告栏(虽然没有一分钱广告费)

ReadEra 阅读书籍

『Flyable Heart 応援中!』 HHG 高苗京铃 闪十PSS 双六 電動伝奇堂 章鱼罐头制作组 はきか 祝姬 星降夜