uva 11401 - Triangle Counting(数论)
来源:互联网 发布:北京 职称评审知乎 编辑:程序博客网 时间:2024/06/05 20:33
题目链接:uva 11401 - Triangle Counting
题目大意:有多少种方法可以从1,2,3...n中选出3个不同的数组成三角形,给出n,求种数。
解题思路:加法原理,设最大边为x的三角形有c(x)个,那么另外两条边长分别为y和z,根据三角形的形式可以的y+z>x,所以z的范围即为x−y<z<x
根据这个不等式可以得到每个y值所对应的z值个数,为等差数列,所以
c(x)=(x−1)∗(x−2)2−⌊x−12⌋2
然后根据递推:f(n)=∑i=1nc(i)
代码
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef unsigned long long ll;const int N = 1e6+5;ll f[N];int main () { int n; f[3] = 0; for (ll i = 4; i < N; i++) f[i] = f[i-1] + ((i-1)*(i-2)/2 - (i-1)/2)/2; while (scanf("%d", &n) == 1 && n >= 3) { printf("%llu\n", f[n]); } return 0;}
1 0
- uva 11401 - Triangle Counting(数论)
- UVA 11401 - Triangle Counting(数论+计数问题)
- UVA 11401 Triangle Counting
- Uva 11401 - Triangle Counting
- UVA 11401 Triangle Counting
- UVA 11401 - Triangle Counting
- UVA 11401 - Triangle Counting
- uva 11401 - Triangle Counting
- UVA - 11401 Triangle Counting
- UVA 11401 Triangle Counting
- UVA - 11401 Triangle Counting
- uva 11401 Triangle Counting
- UVa 11401 Triangle Counting
- uva 11401 Triangle Counting
- UVa 11401 - Triangle Counting
- UVA 11401Triangle Counting
- UVA 11401:Triangle Counting
- UVa 11401 Triangle Counting
- xcode 5.x 编译能通过 运行崩溃报如下错误 升级OS X 到10.9.2就OK了,具体原因不明
- PAT 1004. 成绩排名
- Shiro 基础
- Android开源项目分类汇总
- 指向指针的指针与常量
- uva 11401 - Triangle Counting(数论)
- 基于NodeJS的前后端分离
- 智能拼图
- OCP-1Z0-051 第131题 LEFT OUTER JOIN和RIGHT OUTER JOIN的用法
- PAT 1005. 继续(3n+1)猜想
- Perl 十条基本编程实践
- 标准SQL语句(2)--- 表的增删改
- OGRE之第一个程序
- 从N个人中每数m个人就退出该人的一类笔试题