Problem G
Triangle Counting

Input: Standard Input

Output: Standard Output

You are given n rods of length 1, 2…, n. You have to pick any 3 of them & build a triangle. How many distinct triangles can you make? Note that, two triangles will be considered different if they have at least 1 pair of arms with different length.

Input

The input for each case will have only a single positive integer (3<=n<=1000000). The end of input will be indicated by a case with n<3. This case should not be processed.

Output

 

For each test case, print the number of distinct triangles you can make.

Sample Input                                                  Output for Sample Input

5

8

0

3

22


Problemsetter: Mohammad Mahmudur Rahman

解题思路,分段法,f [n] 记录最长的那条边不超过n的放法数, 假设c[n] 为最长边为n的放法数  f [n] = f [n-1] + c[n] 。

假设最长边为z,其它为 x,y;

则   z-x < y < z

当  x=1 时, z-1<y<z  0 种方案,

当  x=2 时, z-2<y<z  1 种方案,

......................................................

当  x=z-1时, 1<y<z  z-2种方案

所以总计 (z-1)*(z-2)/2 种方案

但是其中包含了x与y想等的情况,因为 x取值为 [ z/2+1 , z-1 ] 区间内可能 x,y相等,共 (z-1)- (z/2+1)+1=z/2-1 种方案

而且x,y与 y,x认为为两个,重复计算了,所以除以2

所以 c[n]= [ (z-1)*(z-2)/2 -(z/2-1) ] / 2

#include <iostream>
using namespace std;const int maxn=1000000;
unsigned long long f[maxn+10];
int n;void ini(){f[3]=0;for(long long z=4;z<=maxn;z++){f[z]=f[z-1] + ( (z-1)*(z-2)/2 - (z/2 -1) )/2;}
}int main(){ini();while(cin>>n && n>=3){cout<<f[n]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/toyking/p/3797375.html

UVA 11401 - Triangle Counting相关推荐

  1. UVA 11401 Triangle Counting(详解)

    Triangle Counting 分析一下 以八为例子 1 2 3 4 5 6 7 8 以(7,8)为边,就有6 7 8, 5 7 8, 4 7 8 ,3 7 8 ,2 7 8 五种情况: 以(6, ...

  2. Triangle Counting【数学】

    Triangle Counting UVA - 11401 题目传送门 题目大意:输入一个整数n,求在1到n中选取三条边能够组成多少种三角形. AC代码: #include <cstdio> ...

  3. NYOJ 982 Triangle Counting (数学题)

    Triangle Counting 时间限制:1000 ms  |  内存限制:65535 KB 描述 You are given n rods of length 1, 2-, n. You hav ...

  4. uva11401:Triangle Counting 递推 数学

    uva11401:Triangle Counting 题目读不清楚的下场就是多做两个小时...从1-n中任选3个不重复数字(不重复啊!!坑爹啊!)问能组成三角形的有多少个, 显然1~n能组成的三角形集 ...

  5. 数三角形Triangel Counting UVa 11401()

    题意 给定一个整数n,有多少种方法可以从1.2.3...n中选择元素构成三角形? 分析 我们设三角形的三边长度分别为x, y, z,若我们假设x是最长边,,因为我们规定了x是最长边,所以根据加法原理, ...

  6. UVa 1225 Digit Counting 题解

    英文 Description Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts w ...

  7. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序

    Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...

  8. UVA - 11437 Triangle Fun(简单几何)

    题目链接:点击查看 题目大意:给出三个顶点A,B,C组成三角形,如题目中的图片所示,规定D,E,F分别为三条边的三等分点,现在要求三角形RPQ的面积 题目分析:利用向量先求出DEF三点,再利用线段相交 ...

  9. uva 11401思维+预处理

    1.题意描述 给定边长为1,2,3,····n的n条边,现在要在里面任意选取三条边构成三角形,我们需要求一共可以构成多少个三角形? 2.题目分析 首先我们分析数据大小问题,由于数据最大可以达到10^6 ...

最新文章

  1. BI工具升级动态增量新功能,让大数据量入集市更便捷
  2. 数据挖掘竞赛-员工离职预测训练赛
  3. 甘蔗是怎么变成白糖的?
  4. 案例二:动态页面模拟点击
  5. 昂贵的聘礼(枚举区间+最短路)
  6. Deklarit3.0的确不错,推荐一下。
  7. 为什么谈设计总爱提老庄之道
  8. Windows程序设计--起步
  9. java统计系统工具类
  10. 简析平衡树(一)——替罪羊树 Scapegoat Tree
  11. 安卓开发实战!一年后斩获腾讯T3,年薪超过80万!
  12. Halcon20算子中文解释
  13. Python语言快速入门(下)
  14. 数据挖掘I 电力窃漏电用户自动识别
  15. 2022网易笑招4.21笔试题
  16. TM1652控制-2
  17. 1553B总线可靠性量化指标的理解
  18. python去除图片复杂背景_如何去除图片背景?这款一键抠图软件帮你
  19. 【深度学习-微调模型】使用Tensorflow Slim fine-tune(微调)模型
  20. 基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现

热门文章

  1. 数学--数论--欧拉降幂--P5091 欧拉定理
  2. P1468 派对灯 Party Lamps(BIG 模拟)
  3. springcloud 之 EurekaServer 服务注册集群
  4. 【Docker-Ubuntu】ubuntu16.04 docker 使用记录
  5. 互联网协议入门-通俗易懂的讲计算机网络5层结构
  6. 嵌入式和非嵌入式_我如何向非技术同事解释词嵌入
  7. t-sne 流形_流形学习[t-SNE,LLE,Isomap等]变得轻松
  8. ai 图灵测试_适用于现代AI系统的“视觉图灵测试”
  9. linux i2c编程
  10. 万劫不复:恐怖悬疑话剧《下一个就是你》