比赛 20160329 评测结果 AAAAAAAAAA
题目名称 拉拉队 最终得分 100
用户昵称 KZNS 运行时间 0.014 s
代码语言 C++ 内存使用 1.46 MiB
提交时间 2016-03-29 10:48:03
显示代码纯文本
//KZNS
#include <fstream>
using namespace std;
//
ifstream fin ("Cheerleaders.in");
ofstream fout ("Cheerleaders.out");
const int MD = 1000007;
//
int M, N, K;
int c[500][600] = {0};
//
void fst() {
	c[1][1] = 1;
	for (int i = 0; i < 500; i++)
		c[i][0] = 1;
}
inline int C(int n, int m) {
	if (m > n)
		return 0;
	if (!c[n][m])
		c[n][m] = (C(n-1,m) + C(n-1,m-1)) % MD;
	return c[n][m];
}
//
int main() {
	fst();
	int t;
	fin >>t;
	int ed;
	for (int i = 1; i <= t; i++) {
		fin >> M >> N >> K;
		ed 	= C(M*N, K)
			-	( 0
					+	( C((M-1)*N, K)
						+ C((M-1)*N, K)
						+ C(M*(N-1), K)
						+ C(M*(N-1), K)
						) % MD
					- 	( C((M-2)*N, K)
						+ C(M*(N-2), K)
						+ C((M-1)*(N-1), K)
						+ C((M-1)*(N-1), K)
						+ C((M-1)*(N-1), K)
						+ C((M-1)*(N-1), K)
						) % MD
					+	( C((M-1)*(N-2), K)
						+ C((M-1)*(N-2), K)
						+ C((M-2)*(N-1), K)
						+ C((M-2)*(N-1), K)
						) % MD
					- 	  C((M-2)*(N-2), K)
				) % MD;
		ed %= MD;
		ed += MD;
		ed %= MD;
		fout << "Case " << i << ": " << ed << endl;
	}
	return 0;
}
//UBWH