思路:简单推导即可。
代码:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000000
#define ll long long
#define read(x) scanf("%d",&x)
int n;
ll f[maxn+5];
int main() {
for(ll i=4;i<=maxn;i++) f[i]=f[i-1]+((i-1)*(i-2)/2-(i-1)/2)/2;
while((~read(n))&&n>=3) {printf("%lld\n",f[n]);}
return 0;
}
本文详细解析了UVA11401 Triangle Counting问题的解题思路,通过简单的数学推导,实现了高效计算任意大小三角形数量的算法。代码采用C++实现,利用动态规划思想,预计算出最大范围内的所有可能情况。
457

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



