9-3NOIP模拟赛总结

哎,今天爆炸了,下午改完题才知道自己犯了什么错误,第二题少了一句话挂了70pt,真的不应该,以后每天要想好后再打.

T1

今天的T1是考了一个快速幂+费马小定理,式子变换一下就变成了aab1 求这个式子的值,观察数据范围显然是要loga+logb的,thkkk大佬眼杀的水题,蒟蒻想了好久都没想出来.我们发现把式子右上角的ab1变换为k×(p1)+c带入原式原式就变为ak×(p1)+c ,再变一下就是ak×(p1)×ac根据费马小定理:a(p1)1(modp)上面那个式子左边是1,我们不需要算,我们只需要算出ac,对于ac的话,直接用a(b1)mod(p1)就好了,最后答案就是qpow(a,qpow(a,b-1,mod-1),mod).

T2

第二题是一道水题,要你求连续的一段序列使它和为奇数,并且要最小,不难想到用前缀和,分为奇数前缀和,和偶数前缀和,然后用两个set维护每次找前驱就好了,mmp少了一句话调了一上午,set要记得lower_bound的时候要注意是不是begin()的位置,以后一定注意!

T3

这道题算是今天最难的一道题了,正好戳中了我的弱点:树型dp,最近要多练练树p了.
给定一棵树,求将其分成若干段,每段有且仅有一个被标记结点的方案数。
显然是个树p,我们设g[x]表示.以x为子树的时候,他和他的子节点只有一个被标记的方案数,f[x]跟其定义相反,我们不难发现转移方程是这样子的
对于当前节点是被标记的点:
f[x]=0,g[x]=cSONf[c]+g[c]
对于当前节点是未被标记的点:
f[x]=cSONf[c]+g[c],g[x]=cSON(g[c]cSON,cc(f[c]+g[c]))
dfs一遍就好了.

经验与不足

set记得注意边界,以后晚上要休息好,不然上午脑袋里一片浆糊,加油练习树p,加油.

转载于:https://www.cnblogs.com/brodrinkwater/p/7527972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值