摘要:
题面 首先我们要有一个明确的构造思路 对于非根节点,我们把子树连上来的线两两配对,这样如果它有奇数个子树就会剩一个,这时候把这根线传给父亲即可。对于根节点还是两两配对,但是注意如果它也有奇数个子树就不能剩了,必须把这根线算上。这样第一问的答案就是每个非根节点贡献度数除以二下取整,根节点贡献度数除以二 阅读全文
posted @ 2018-10-18 11:18
Speranza_Leaf
阅读(246)
评论(0)
推荐(0)
摘要:
题面 好久以前写的,发现自己居然一直没有写题解=。= 扩展欧拉定理:在$b>φ(p)$时有$a^b \equiv a^{b\%φ(p)+φ(p)}(mod$ $p)$ 然后每次递归那个$a^{b\%φ(p)}$的部分,最后在$φ(p)=1$时返回即可 1 #include<cstdio> 2 #in 阅读全文
posted @ 2018-10-18 10:45
Speranza_Leaf
阅读(115)
评论(0)
推荐(0)
摘要:
题面 我们把怪分成两类,打完了了能回血的和打完了不能回血的,然后分开打。 对于能回血的,我们先打攻击力低的,因为如果先打一个攻击力高的显然不一定能直接打过,所以先打一些攻击力低的回回血。 对于不能回血的,我们先打回血多的,因为如果能打完我们最后的血量是确定的,所以逆序来看相当于每次丢掉打怪回的血再加 阅读全文
posted @ 2018-10-18 10:36
Speranza_Leaf
阅读(130)
评论(0)
推荐(0)
摘要:
题面 From ZRQ,很好的计数题 我们可以发现这$len=r-l+1$个数中有一些是必须被查到的,即它们不是一些数的倍数,它们的数目$imp$可以通过一次埃氏筛求出。 在一个排列中可怜查到某个位置时就不用检查了,那这个位置上一定是这个排列中第$imp$和必须被查的数,我们不妨从$imp$到$le 阅读全文
posted @ 2018-10-18 09:46
Speranza_Leaf
阅读(134)
评论(0)
推荐(0)
摘要:
题面 转化一下题目,即是求$1$到$n$中对于某个素数$pri$使得$gcd(x*pri,y*pri)=pri$的$(x,y)$的数目 这样一来就可以考虑每个质数$pri$对答案的贡献,即为$1$到$\frac{n}{pri}$中互质对的个数。设$x<y$则$x$有$φ(y)$个取值使$x,y$互质 阅读全文
posted @ 2018-10-18 09:22
Speranza_Leaf
阅读(103)
评论(0)
推荐(0)
摘要:
题面 用双向链表把相邻两项的差串起来,用大根堆维护价值,每次贪心取最大的$x$。取完之后打标记删掉$pre[x]$和$nxt[x]$,之后用$val[pre[x]]+val[nxt[x]]-val[x]$替换这个$x$塞进堆里去,注意边界要连上一个极值 1 #include<queue> 2 #in 阅读全文
posted @ 2018-10-18 08:13
Speranza_Leaf
阅读(176)
评论(0)
推荐(0)
摘要:
题面 整体的思路就是在均摊每个宿舍的人数,注意一个人可以跑好几次=。= 可以发现多的学生往中间跑一定能跑过宿管,所以只考虑学生们能不能及时跑到人不够的宿舍。对两边记录两个已经满足要求的宿舍,然后用前/后缀和判断这个宿舍是否能达到要求。如果不可能达不到就让他们都跑出来(雾,反正宿管看的是宿舍数目,没人 阅读全文
posted @ 2018-10-18 08:02
Speranza_Leaf
阅读(209)
评论(0)
推荐(0)
摘要:
题面 0/1分数规划+树形背包检查 要求$\frac{\sum P_i}{\sum S_i}的最大值,$按照0/1分数规划的做法,二分一个mid之后把式子化成$\sum P_i=\sum S_i*mid$。然后相当于每个点$i$的点权是$P_i-S_i*mid$来做树形背包。 然而我并不太会树形背包 阅读全文
posted @ 2018-10-18 07:43
Speranza_Leaf
阅读(137)
评论(0)
推荐(0)

浙公网安备 33010602011771号