赞
踩
//r[n]:当前第几列的值。
//l[n]:当前第几行的值。
暴力+减止
#include<bits/stdc++.h> using namespace std; #define int long long const int n=1e3; int a,b,c,l[n],r[n],an; void dfs(int x,int y) { if(x==b+1) { an++; return ; } for(int i=0;i<=a;i++) { l[x]+=i; r[y]+=i; if(l[x]<=a&&r[y]<=a) { int v=0; if(x==b) { if(r[y]==a) { v++; } } else { v++; } if(y==b) { if(l[x]==a) { v++; } } else v++; if(v==2) { dfs(x+(y/b),y%b+1); } } l[x]-=i; r[y]-=i; } } signed main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>a>>b; dfs(1,1); cout<<an<<endl; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。