贪心 + 简单模拟
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <set>
#include <cctype>
#include <algorithm>
#include <cmath>
#include <deque>
#include <queue>
#include <map>
#include <stack>
#include <list>
#include <iomanip>
using namespace std;
///
///
#define INF 0xffffff7
#define maxn 60
///
int cases;
int N;
int towers[maxn][maxn];
int cnt[maxn];
bool isSqrt(int n)
{
for(int i = 1; n > 0; i += 2) n -= i;
return 0 == n;
}
int main()
{
///
int i, j, k;
int num = 1;
cin >> cases;
while (cases--)
{
memset(towers, 0, sizeof(towers));
memset(cnt, 0, sizeof(cnt));
cin >> N;
while (1)
{
//检查所有柱子
for (i = 0; i < N; i++)
{
if