思路

数据范围是 1N161\leq N\leq16,果断考虑手算 + 找规律。徒手画出前几个图形,拿去 OEIS 找规律,发现正好可以和这个吻合,于是就可以水过了。

至于找规律的过程,如下:

  • 1 个三角形:1 种

  • 2 个三角形:2 种

  • 3 个三角形:3 种(这 3 种都没什么好说的,不占用太多篇幅)

  • 4 个三角形:4 种,如图所示(这个题面有给):

  • 5 个三角形:

代码

#include<bits/stdc++.h>
using namespace std;
long long n,a[30]={0,1,1,1,4,6,19,43,120,307,866,2336,6588,18373,52119,147700,422016,1207477,3471067,
		9999135,28893560,83665729,242826187,706074369,2056870697,6001555275,17538335077,51323792789};
int main(){
	cin>>n;
	for (int i=1;i<=n;i++){
		int tmp;
		cin>>tmp;
		cout<<"Case #"<<i<<": "<<a[tmp]<<endl;
	}
	return 0;
}