2020.04.15【NOIP普及组】模拟赛C组26 总结

2020.04.15 2020.04.15 2020.04.15 N O I P NOIP NOIP普及组】模拟赛 C C C 26 26 26 总结

这次比赛我考了 240 240 240分,比我预计高了 10 10 10,但是下次还要继续努力。

第一题: G r a s s Grass Grass P l a n t i n g Planting Planting

题目

T1(1)
T1(2)

解题方法

方法 1 1 1:树形 d p dp dp

d p i dp_i dpi表示以 i i i为根的子树需要使用的最少的草的种类数, f i f_i fi表示 i i i节点的儿子个数, b i b_i bi表示与 i i i结点相连的结点数量。
除了根节点以外的其他结点都与 b i b_i bi个结点相连,而有一个结点恰好是它的父亲结点。但是由于根结点没有父亲结点,因此
f i = { b i − 1 i > 1 b i i = 1 f_i=\begin{cases} b_i-1&i>1\\ b_i&i=1 \end{cases} fi={bi1bii>1i=1
注:这里我们假定 1 1 1是整棵树的根。
那么可以得到
d p i = max ⁡ j ∈ s o n i ( d p j , f i + 1 , f j + 2 ) dp_i=\max_{j\in son_i}{(dp_j,f_i+1,f_j+2)} dpi=maxjsoni(dpj,fi+1,fj+2)
注: s o n i son_i soni表示 i i i的儿子。
上面式子的 d p j dp_j dpj表示以 j j j为根的子树需要使用的最少的草的种类数, f i + 1 f_i+1 fi+1表示 i i i的儿子的数量再加上 i i i这个结点, f j + 2 f_j+2 fj+2表示 j j j的儿子的数量再加上 i i i j j j两个结点。
那么答案就是 d p 1 dp_1 dp1
时间复杂度为 O ( n ) O(n) O(n)

方法 2 2 2:数学

b i b_i bi表示与 i i i结点相连的结点数量。
我们可以发现,答案就是 max ⁡ i = 1 n b i + 1 \max_{i=1}^{n}{b_i}+1 maxi=1nbi+1
时间复杂度为 O ( n ) O(n) O(n)

得分情况

比赛时满分。

第二题: I c y Icy Icy P e r i m e t e r Perimeter Perimeter

题目

T2(1)
T2(2)
T2(3)

解题方法

这道题的解题方法是搜索。

求面积:

其实求面积就是求最大的连通块,我们直接搜索就可以找到了。

求周长:
提出理论

周长就是搜索时越界或点的数量。

证明理论

现在有一个图,如下:
T2(4)
红色区域的周长是 4 4 4
也就是从当前这个位置往 4 4 4个方向遍历,然后发现全部都是 ‘ . ’ ‘.’ .,所以周长为 4 4 4
这就证明了周长是点的数量。
那么现在有另外一个图,如下:
T2(5)
红色区域的周长是 8 8 8
也就是 7 7 7个点加上 1 1 1个边界。
这就证明了周长是边界加点的数量。
证明结束。
注意: d f s dfs dfs会爆栈,最好用 b f s bfs bfs(我就是这样被扣了 10 10 10分)!

得分情况

比赛时 90 90 90分。
改题后 100 100 100分。

第三题: M o u n t a i n Mountain Mountain V i e w View View

题目

T3(1)
T3(2)

解题方法

l i l_i li r i r_i ri分别表示第 i i i座山的左右端点。

l i = x i − y i , r i = x i + y i l_i=x_i-y_i,r_i=x_i+y_i li=xiyi,ri=xi+yi
那么我们按左端点从小到大排序,然后如果左端点相等,就按右端点从大到小排序。
最后只要判断一下当前这座山是否大于前面的山就行了。
其实思路是贪心。

得分情况

比赛时 50 50 50分。
改题后满分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值