上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
摘要: 一眼最小割。 一种比较好想的建图方式如下: 连源点表示学文,连汇点表示学理,然后adde(S,id(i,j),a[i][j]),adde(id(i,j),T,b[i][j]);对于相邻座位选择同一科的情况,建立新节点,然后若学文,则新点向T连一条流量为价值的边,然后两名同学向该点连接流量为inf的边 阅读全文
posted @ 2019-05-31 09:42 hfctf0210 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 很容易发现一个O(n2)DP,f[i][j]=f[i][j+1]+f[i+1][j]-f[i+1][j+1]。然后由于有栅栏,一些位置没办法走,然后就可以用类似差分的方法,f[i]表示当前行f[i+1]无法到达的花朵,然后对于每个点找到其下方第一个栅栏。分情况讨论,需要支持单点修改(出现花),区间标 阅读全文
posted @ 2019-05-31 08:07 hfctf0210 阅读(289) 评论(1) 推荐(0) 编辑
摘要: 非常抱歉,这篇文章鸽了。 阅读全文
posted @ 2019-05-30 21:53 hfctf0210 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 非常抱歉,这篇文章鸽了。 阅读全文
posted @ 2019-05-30 21:52 hfctf0210 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 这题正解应该是扫描线,就是发现DP的区间在两个维度都为连续段,于是可以直接扫描线。但不幸的是,扫描线常数过大,无法通过本题。 考虑分治。对于分治区间[l,r],可以记录pre和nxt表示其前/后一次出现的位置,每当遇到一个出现次数=1的数,可以直接把区间分为两半判断,反之则丢掉这个数,而仅会分治一次 阅读全文
posted @ 2019-05-29 19:37 hfctf0210 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 颜色数不超过lim=min(m,n/S),然后计算恰好出现S次的颜色有至少i种的方案数为f[i],被钦定的i种恰好S个,其余(m-i)种一共(n-iS)个,然后f[i]=C(i,m)(m-i)n-iSn!/((S!)i(n-iS)!),然后一减就发现ans[i]=Σ(-1)j-iC(i,j)f[j] 阅读全文
posted @ 2019-05-24 20:48 hfctf0210 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 首先有个很奇妙而且很有用的性质:每个二叉树对应唯一的中序遍历,然后每个二叉树出现概率相同。所以n个节点的二叉树形态是n!种(题目中说了*n!已经是提示了),对每种方案求和即可得到期望。令f[i]表示i个节点的子树,根深度为1时,所有点的期望深度之和乘i!的值,令g[i]表示i个节点的子树,期望两两路 阅读全文
posted @ 2019-05-24 20:02 hfctf0210 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 开始没看数据范围差点以为是这题了:https://www.cnblogs.com/hfctf0210/p/10911340.html 然后看到n<=1e8,怎么这么大? 所以这题需要用动态开点线段树或者动态开点splay,而我上面的那题写的树状数组,为了熟悉splay就用动态开点splay吧而且也不 阅读全文
posted @ 2019-05-23 14:29 hfctf0210 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 这题90%以上的人做法为裸的平衡树,实际上根本没必要还常数大,最好的方法是二分+树状数组。具体做法是,开3倍内存,初始把中间n位赋值为1。对于每个操作:1&2、删除该位,将其丢在头/尾(开三倍内存的原因)。3、插入时直接二分查询第ask(x)+y位,换一下即可。4、直接查询。5、二分查询。复杂度O( 阅读全文
posted @ 2019-05-23 13:20 hfctf0210 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 有一个数组开大会MLE开小会RE的做法:就是树套树,即树状数组套主席树,这种方法比较暴力,然而很遗憾它不能通过,因为其时空复杂度均为O(nlog2n)。 想到一种不怎么耗内存,以时间换空间,分块!单次修改(l,r)只对点对(l,r)、(l,i)和(i,r)产生影响,其中l<i<r,然后可以考虑分块, 阅读全文
posted @ 2019-05-23 12:35 hfctf0210 阅读(248) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页