NOIP2018模拟9.6

第一场模拟。

 100+40+50

第二题结论想错了,第三题剪枝没加足。

 

T1

题目大意:

给出一棵树,每次询问两条路径是否有交点。

题解:

以一为根之后,两条相交的路径必定有某一条的lca在另一条路径上,判一下即可。

 

T2

题目大意:

给出一棵树,可以任意选择两个点,每个点的距离定为这个点到被选定的两个点中的较短路的长度,求每个点距离的最大值的最小值。

题解:

结论是,最优选择的两点在树的直径上,二分答案再扫一遍即可。

 

T3

题目大意:

给出一个n*n的网格,要求每行每列填入1~n,要求满足以下条件:

1、每行每列不能出现重复数字。

2、初始给出一个n*n的限制矩阵,权值相同的联通块表示联通块内填入的数字乘积为该权值。

求方案数和最小字典序方案。

题解:

有以下剪枝:

1、有一些位置只能填某一个数,可以预先填入。

2、按块大小   或者   块权值大小   或者   它们的比值大小   或者   块内可选数的个数多少排序,优化搜索顺序。

3、记录一个f数组,f[s]表示用1~n内的数字(可重复)相乘得到s所需要的最小数字个数,以及记录每一块当前的权值乘积,以此剪枝。

大概效果比较玄幻...

转载于:https://www.cnblogs.com/lmlysklt/p/9622902.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值