2020.06.27日常总结

UVA10970 Big Chocolate\color{green}{\texttt{UVA10970 Big Chocolate}}

[Problem]\color{blue}{\texttt{[Problem]}}

  • 给你一块 n×mn\times m 的巧克力和一把刀,你要用刀把这个巧克力分成 n×mn\times m1×11\times 1 的小块,但是一刀不能看两个巧克力,请问你最少需要砍几刀?
  • 多组数据。1n,m3001 \leq n,m \leq 300

[Soluntion]\color{blue}{\texttt{[Soluntion]}}

这是一道思维题。据我所知,有两种思考的方法。

  1. 感性的思考。

    一刀可以把巧克力分成两块,两刀可以把巧克力分成三块,三刀可以把巧克力分成四块……以此类推,tt 刀可以把巧克力分成 t+1t+1 块。

    所以,要把巧克力分成 n×mn\times m 块,就需要 n×m1n\times m-1 刀,直接输出即可满分。

  2. 比较理性的思考。

    先横着切还是先竖着切,还是横竖相交的切,需要的刀数都是一样的。所以我们可以这样考虑:

    先考虑把巧克力分成 mmn×1n \times 1 的小块,这需要 m1m-1 刀。再把这 mm 个小块各自分成 1×11 \times 1 的巧克力,每个小块需要 n1n-1,所以总的刀数为:

    (m1)+(n1)×m=m1+(n1)×m=(n1+1)×m1=n×m1\begin{aligned}(m-1)+(n-1)\times m&=m-1+(n-1)\times m\\ &=(n-1+1)\times m-1\\ &=n\times m-1 \end{aligned}

    直接输出,马上满分。

[code]\color{blue}{\texttt{[code]}}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章