https://vjudge.net/problem/UVA-11538
题解:对于行列的总和很容易算出来就是 nm(n+m-2)
对于对角线 ,我们可以枚举对角线的长度,对角线长度为1时,我们的方案数为4*(2乘2的矩阵数)
长度为2时,我们的方案数为4*(3乘3的矩阵数),以此类推。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define ll long long
int main()
{
ll n,m,ans=0;
while(~scanf("%lld%lld",&n,&m)&&n&&m)
{
ans=n*m*(n+m-2);
ll tot=1;
while(n>tot&&m>tot)
{
ans+=4*(n-tot)*(m-tot);tot++;
}
printf("%lld\n",ans);
}
return 0;
}
本文提供了一种解决UVA-11538问题的有效算法,通过计算行列总和和对角线方案数,给出了清晰的代码实现。首先计算行列的总和,然后枚举对角线长度来确定方案数,最后给出完整的C++代码。
2万+

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



