上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 65 下一页
摘要: 显然删掉的边肯定是直径上的边。考虑枚举删哪一条。然后考虑怎么连。显然新边应该满足其两端点在各自树中作为根能使树深度最小。只要线性求出这个东西就可以了,这与求树的重心的过程类似。 阅读全文
posted @ 2018-11-28 19:17 Gloid 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 化为前缀和相减。考虑每一位的贡献。则需要快速查询之前有几个数和当前数的差在第k位上为1。显然其与更高位是无关的。于是用BIT维护后k位的数的出现次数,瞎算一算即可。 阅读全文
posted @ 2018-11-28 02:38 Gloid 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]为第i天到达j号城市的方案数,转移显然,答案即为每天在每个点的方案数之和。矩乘一发即可。 阅读全文
posted @ 2018-11-27 21:56 Gloid 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 容易想到网络流之类的东西,虽然范围看起来不太可做,不过这提供了一种想法,即将行列分别看做点。那么我们需要找一种连n+m条边的方案,使得可以从每条边中选一个点以覆盖所有点。显然每个点至少要连一条边。于是这个东西就必须是环套树森林了,并且显然其可以满足条件。现在要求的就是最小环套树森林。 求法类似kru 阅读全文
posted @ 2018-11-27 21:27 Gloid 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 相当于将线段划分成两个集合使集合内线段不相交,并且可以发现线段相交等价于逆序对。也即要将原序列划分成两个单增序列。由dilworth定理,如果存在长度>=3的单减子序列,无解,可以先判掉。 这个时候有两种显然的暴力。 将点集划分成两部分使内部无边显然就是二分图,于是第一种暴力是在逆序对之间连边,答案 阅读全文
posted @ 2018-11-27 20:10 Gloid 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 既然是二选一,考虑两个问题有什么联系。题面没有说无解怎么办,所以如果不存在经过k条边的简单路径,一定存在k染色方案。考虑怎么证明这个东西,我们造一棵dfs树。于是可以发现如果树深>k(根节点深度为1),显然能找到一条经过k条边的简单路径;否则对于dfs树每一层染一种颜色,因为dfs树上不存在同层之间 阅读全文
posted @ 2018-11-27 12:43 Gloid 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 暴力dp非常显然,设f[i][0/1]表示i号点不选/选时i子树内的答案,则f[i][0]=Σf[son][1],f[i][1]=a[i]+Σmin(f[son][0],f[son][1])。 注意到B的部分分,可以想到每次修改只会对修改点到根的路径上的点的dp值产生影响。 考虑如何优化修改路径这一 阅读全文
posted @ 2018-11-26 23:20 Gloid 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 选择了某个区间就必须选择其所有子区间,容易想到这是一个最大权闭合子图的模型。考虑将区间按长度分层,相邻层按包含关系连边,区间[i,j]的权值即di,j,其中最后一层表示长度为1的区间的同时也表示寿司本身,所以其权值减去x。这样建出原图,再用最大权闭合子图的方法重建就行了。于是m=0的情况就解决了。给 阅读全文
posted @ 2018-11-26 13:23 Gloid 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 设f[i][0/1/2/3/4/5]表示i子树中选一条链不包含根/i子树中选一条链包含根但不能继续向上延伸/i子树中选一条链可以继续向上延伸/选两条链不包含根/选两条链包含根但不能继续向上延伸/选两条链能继续向上延伸,大力讨论即可。代码看起来很(mo)有(ming)意(qi)思(miao)。 阅读全文
posted @ 2018-11-25 20:01 Gloid 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 容易想到枚举最晚发布成绩的课哪天发布,这样与ti和C有关的贡献固定。每门课要么贡献一些调节次数,要么需要一些调节次数,剩下的算贡献也非常显然。这样就能做到平方级别了。 然后大胆猜想这是一个凸函数三分就能A掉了。具体的,延迟最晚时间一方面会增加学生的不愉快度,这显然是时间越晚不愉快度增加量越大的,导数 阅读全文
posted @ 2018-11-25 16:10 Gloid 阅读(188) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 65 下一页