題目:給你n個1*1*1的小立方體,把他們拼成一個長繁體,求最小的表面積。
分析:簡單題,枚舉。數據較小直接枚舉長款計算髙即可,打表計算查詢輸出。
說明:三個值越接近越好,╮(╯▽╰)╭。
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> using namespace std; int area[1001]; int main() { for (int i = 1; i < 1001 ; ++ i) { area[i] = 4*i+2; for (int j = 1; j < i; ++ j) { if (i%j == 0) { for (int k = 1; k < j; ++ k) { if (i/j%k == 0 && area[i] > 2*(i/j+i/k+j*k)) { area[i] = 2*(i/j+i/k+j*k); } } } } } int n,m; while (~scanf("%d",&n)) while (n --) { scanf("%d",&m); printf("%d\n",area[m]); } return 0; }
时间: 2024-10-16 18:26:47