UVA11401-Triangle Counting-递推
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA11401-Triangle Counting-递推相关的知识,希望对你有一定的参考价值。
给出一个数字n,计算从1到n能组成几个不同的三角形。
n的范围是10^6,大概就是递推吧。从F[i-1]到F[i]可以线性求出。要注意结果超出int。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; long long dp[1000100]; int N; int main() { dp[3] = 0; dp[4] = 1; dp[5] = 3; for(int i=6;i<1000010;i++) { long long k = i-3; if(k&1) dp[i] = dp[i-1]+(k+1)*(k+1)/4; else dp[i] = dp[i-1]+ k*(k+2)/4; } while(~scanf("%d",&N) && N>=3) { printf("%lld\n",dp[N]); } }
以上是关于UVA11401-Triangle Counting-递推的主要内容,如果未能解决你的问题,请参考以下文章