2020.06.27日常总结

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

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

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

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

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

  1. 感性的思考。

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

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

  2. 比较理性的思考。

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

    先考虑把巧克力分成 m m m n × 1 n \times 1 n×1 的小块,这需要 m − 1 m-1 m1 刀。再把这 m m m 个小块各自分成 1 × 1 1 \times 1 1×1 的巧克力,每个小块需要 n − 1 n-1 n1,所以总的刀数为:

    ( m − 1 ) + ( n − 1 ) × m = m − 1 + ( n − 1 ) × m = ( n − 1 + 1 ) × m − 1 = n × m − 1 \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} (m1)+(n1)×m=m1+(n1)×m=(n1+1)×m1=n×m1

    直接输出,马上满分。

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

在这里插入图片描述

你可能感兴趣的:(思维题)