2018.05.26【省赛模拟】B 组

T1:把每个点的权值从小到大排序,然后依次加入图里,每一次把加入的点作为中转点做一遍佛洛伊德就行了。

注意:在做佛洛伊德时未加入图的点只是不能作为中转点,但是可以作为起点和终点。


T2:假设n>m,mid=(n+m)/2,显然对于每一个S中的串,要在前mid位中找出以后n-mid位相同的,然后看看T集中有几个与剩余的m位相同的串,加入答案即可。对于T集,我们可以做一遍哈希(存入一个map),S中的剩余m位可以在map中找,但关键是如何在S的前mid位中找出后n-mid位,这里可以用KMP(具体看KMP总结)。这题就做完了。


T3:对于每一个节点的所有儿子的子树大小,肯定是给子树大小较小的儿子较长的编号,给子树大小较大的儿子较短的编号(贪心思想)。而具体操作可以用合并果子的思想(就是先处理小的),例:假设有3个儿子,大小分别是2,3,5,那么操作过程便是先把2,3合并,在与5合并,那么答案就是:

2:00

3:01

5:1

当然要加上父亲原来的串。

这样这题就可以做出来了。注意如果只有一个儿子,那么父亲与儿子的编号相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值