![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jzoj
ganjingxian
这个作者很懒,什么都没留下…
展开
-
jzoj5813. 【NOIP提高A组模拟2018.8.14】 计算
这道题目dalao们说数据还可以加强,但是鉴于博主太菜,只会做原题数据。 首先我们只考虑第一个限制 那么分成三类 A:这些x的乘积小于nmnmn^m B:这些x的乘积等于nmnmn^m C:这些x的乘积大于nmnmn^m 容易知道A,C的数量是一样的,因为对于每一个A,一定存在一个C使得他们乘积是等于n2mn2mn^{2m} 这就是本题的重要突破口。 易知,所有情况为n2m...原创 2018-08-14 20:17:35 · 212 阅读 · 0 评论 -
[HEOI2016/TJOI2016]树
题目描述在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。)询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖先)你能帮帮他吗?输入输出格式输入格式: 输入第一行两个正整...原创 2018-08-12 21:59:10 · 341 阅读 · 0 评论 -
jzoj5819. 【NOIP提高A组模拟2018.8.15】 大逃杀
题意略。 我太弱了,搞了好久,才搞懂题解,心态崩ingsolution设fi,jfi,jfi,j表示以i为根的子树中,从i开始走,最后回到i,用j时间,所能拿到的最大武力值。 设gi,jgi,jgi,j表示以i为根的子树中,从i开始走,不回到i,用j时间,所能拿到的最大武力值。 设hi,jhi,jhi,j表示以i为根的子树中,从i的子树内开始走,经过i,最后还是在i的子树内,用j...原创 2018-08-16 17:04:42 · 355 阅读 · 0 评论 -
jzoj4211. 送你一颗圣诞树
很明显,如果直接弄,点数非常多我们知道,一棵树的答案=两个子树的答案+size[a]*sum(b,d)+size[b]*sum(a,c)+size[a]*size[b]*l(其中sum(x,y)表示第x个树中,每个点到y的距离值和)那么问题就是怎么求sum,现在我们假设y在组成x这棵树的左子树里(右子树同理),那么对于左子树这部分的贡献,我们递归求,对于右子树,我们求得右子树每个点到c的距离...原创 2019-01-25 12:37:09 · 381 阅读 · 0 评论 -
虚树学习小结
从一道模板题说起一道模板题:[SDOI2011]消耗战一个显然的东西,设f(x)表示x子树内的点不能通过x走到根最小代价。如果x不是特殊点,f(x)=min(m[x],∑\sum∑f(son[x])),否则f(x)=m[x](其中m[x]表示x到根路径上的最短边),然而会T但是我们发现,有很多点是根本没有卵用的。同时,有用的转移,要么是他们本身,要么是几个不存在父子关系的结点的lca,当然...原创 2019-01-25 22:53:49 · 183 阅读 · 1 评论 -
jzoj4225. 【五校联考3day1】宝藏
solution很明显,这道题就是要求,两个点之间的期望步数,那么我们知道,对于两个点x,y肯定是x走到lca再走下去到y我们设f,g分别为由x走到他父亲的期望步数,和由父亲走来的期望步数f[x]=1/deg[x]+∑u∈son[x]\sum_{u \in son[x]}∑u∈son[x](f[u]+f[x]+1)/deg[x]g[x]=1/deg[fa[x]]+1/deg[fa[x...原创 2019-01-26 20:12:26 · 164 阅读 · 0 评论 -
4806. 【NOIP2016提高A组五校联考3】打工
Solution首先,我们可以发现如果x要出现(且是第一次出现),那么x-1一定要在它前面出现。设Fi,j表示还剩下i个位置没有确定,前面的最大值为j。关键就是怎样用f来算答案,比如说122321,我们考虑这一个数的每一位贡献,比如我们固定前面的122,3这位可以填1或2,后面的随便填,注意要弄一个前缀最大值,比如统计十位的贡献,就有1,2,3,4这些情况。code#include...原创 2019-06-25 22:07:52 · 168 阅读 · 0 评论 -
jzoj6302. 提高组
感觉好像没6301难,但是思路特别巧妙。对于一个合法的序列,我们都可以用两个(没有交集)上升子序列将其覆盖,如果已经是有序的话也不影响考虑这个序列的前缀max,我们将那些对前缀max有贡献的位置(就是一个连续段开头)拉出来,一定是一个上升子序列,另一方面,设两个数ai,ai+1,ai对前缀max有贡献,且ai+1对max无贡献(ai+1<ai),那么ai+1后面的数都必须要比ai+1大...原创 2019-08-14 19:25:48 · 163 阅读 · 0 评论