找规律!!!!!别忘了处理溢出!!!!!
假设矩形有1行,行有n种可能,列有n+n-1+……+1种可能
假设矩形有2行,行有n-1种可能,列有n+n-1+……+1种可能
……
假设矩形有n行,行有1种可能,列有n+n-1+……+1种可能
总共a*(a+1)*b*(b+1)/4种可能
int main() { int a,b; while(cin >> a >> b) cout <<(long long) a*(a+1)*b*(b+1)/4<< endl; return 0; }
原先枚举超时的代码,复杂度O(a*b)
int r,c; long long sum = 0; while(scanf("%d%d",&r,&c)!=EOF) { sum = 0; for(int i = 1; i <= r; i++) for(int j = 1; j <= c; j++) sum += (r - i + 1)*(c - j + 1); printf("%I64d",sum); } return 0;
时间: 2024-10-10 01:28:58