close
Content
尼斯湖水怪是一隻住在尼斯湖中神秘且不明的動物。尼斯湖則是北蘇格蘭的印芬尼斯市附近的一個大且深的淡水湖。尼斯怪通常被視為一種湖怪。
http://en.wikipedia.org/wiki/Loch_Ness_Monster
背景
2003 年 7 月,BBC (英國國家廣播電視公司) 曾報導了一項他們對尼斯湖所作的大規模研究,他們用 600 支聲納也沒有辦法在湖中找到任何「水怪」(也就是任何已知或未知的大型動物) 的踪跡。他們推論尼斯怪並不存在。現在我們要重覆這項實驗。
問題
給你一個 n 列 m 行的格子代表尼斯湖,6 ≤ n, m ≤ 10000,找出最少要放幾個聲納才能控制所有的方格,條件如下:
- 一個聲納佔一格;它的監控範圍為所在的那一格及緊鄰的格子;
- 邊緣的格子不需要監控,因為尼斯怪太大了,無法蔵在那兒。
Input
輸入的第一行有一個整數,t,代表測試筆數。每筆測資一行,含有兩個由空白分開的數字,6 ≤ n, m ≤ 10000,也就是格子的大小 (n 列 m 行)。
Output
每筆測資輸出一行,顯示符合上述條件的最小數字。
Sample Input #1
3 6 6 7 7 9 13
Sample Output #1
4 4 12
python
""" 這題我看人家的..... 想法一:因為題目說"邊緣的格子不需要監控",所以可以將長、寬都先減2,再把長、寬分別除以3再無條件進位之後的結果相乘就是答案了。 想法二:可利用C++除法無條件捨去的特性,直接把長、寬分別除以3後的結果相乘起來就是答案了。 """ t=int(input()) for _ in range(t): n,m=map(int,input().split()) n//=3 m//=3 print(n*m)
C++
#include <iostream> #include <cmath> using namespace std; int main() { int t; double n, m; cin >> t; while (t--){ cin >> n >> m; cout << (int)ceil((n-2)/3) * (int)ceil((m-2)/3) << endl; } return 0; } /* 控制小數點道第幾位 #include <inmanip> cout << setprecision(3) << 3.123 << endl; 控制無條件進位至整數 #include <cmath> cout << ceil(數字) << endl; */
文章標籤
全站熱搜