跳转至

第 13 届 Python A 组(省赛)

T1 裁纸刀 (5'/5')

题意:给定一个 \(20\times 22\) 的方格,每次可以在格子的边缘一切到底,问最少几刀可以把所有的格子都切出来(边缘 \(4\) 刀一定要切)。

思路:贪心地,一刀切的长度越长越好,那么要么就是横向一刀切,纵向一个一个切,要么纵向一刀切,横向一个一个切。两种取最小值即可。

最终答案:\(443\)

1
2
3
n, m = 20, 22

print(min((n - 1) + n * (m - 1), (m - 1) + m * (n - 1)) + 4)
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;

int main() {
    int n = 20, m = 22;
    cout << min(n - 1 + n * (m - 1), m - 1 + m * (n - 1)) + 4 << "\n";

    return 0;
}

T2