Chess
Accepts: 1799
Submissions: 5738
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
const int maxn = 1001;
int T,n,m;
int a[maxn][maxn];
int main() {
for(int i=0;i<=1000;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0||j==i)
{
a[i][j]=1;
}
else
a[i][j]=(a[i-1][j-1]+a[i-1][j])%1000000007;
}
}
cin >>T;
while(T--&&cin >> n >> m) {
if(n<m) swap(n,m);
cout << a[n][m] <<endl;
}
return 0;
}
本文探讨了在一个N×M的矩形棋盘上摆放中国象棋中的車棋子的问题,要求車彼此不能互相攻击,并遵循特定的上下左右规则。通过使用类似于杨辉三角的方法,实现了高效计算满足条件的摆放方案数量。
1035

被折叠的 条评论
为什么被折叠?



