UVA 11401 - Triangle Counting

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苏州软件测试11k工资要什么水平,3个月从机械转行软件测试,他的入职薪资是11K...

原标题&#xff1a;3个月从机械转行软件测试&#xff0c;他的入职薪资是11K只要找到适合自己的学习方式&#xff0c;成功转行只是早晚的问题&#xff01;今天汇智妹给大家介绍的这位小伙伴&#xff0c;是咱们汇学联盟平台上的一位线上学员——小周。97年的小哥哥&#xff0c;19…

TCP/IP 原理--链路层

链路层作用&#xff1a; &#xff08;1&#xff09;为IP模块发送和接收IP数据报&#xff1b; &#xff08;2&#xff09;为ARP发送ARP请求和接受ARP应答 &#xff08;3&#xff09;为RARP发送RARP请求和接受ARP应答 协议&#xff1a;以太网和SLIP协议 A.以太网协议数据封装格式…

拆解凹多边形

偶遇需要拆解凹多边形 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media;namespace DrawPolygon {public static class Settings{public const float…

一个FORK的面试题

为什么80%的码农都做不了架构师&#xff1f;>>> #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i0; i<2; i){ fork(); printf("-"); } wait(NULL); wait(NULL); return 0; }/c 如果…

C++11系列学习之二-----lambda表达式

C11添加了一项名为lambda表达式的新功能&#xff0c;通过这项功能可以编写内嵌的匿名函数&#xff0c;而不必编写独立函数和函数对象&#xff0c;使得代码更容易理解。lambda表达式的语法如下所示&#xff1a;[capture_block](parameters) exceptions_specification -> retu…

GCPC2014 C Bounty Hunter

题意&#xff1a;给你一个平面上的点集&#xff08;x值各不相等&#xff09;&#xff0c;问你从最左边走到最右边&#xff08;只能以x递增的顺序&#xff09;&#xff0c;再从最右边回到最左边&#xff08;以x递减的顺序&#xff09;问你最短距离是多少。 解题思路&#xff1a;…

计算机启动时运行ccleaner,Ccleaner的使用方法

ccleaner是一款非常好用的系统优化工具&#xff0c;它可以提升电脑速度&#xff0c;可以对上网历史记录、临时文件夹、回收站垃圾清理、注册表进行垃圾项扫描和清理、软件卸载等功能&#xff0c;保护用户的个人浏览隐私&#xff0c;为Windows系统腾出更多硬盘空间。下面小编就为…

PLSQL Developer软件使用大全

PLSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境&#xff0c;专门面向Oracle数据库存储程序单元的开发。如今&#xff0c;有越来越多的商业逻辑和应用逻辑转向了Oracle Server&#xff0c;因此&#xff0c;PL/SQL编程也成了整个开…

电脑显示器变色_电脑维修(看完后就可以开一家自己的电脑维修店!)

第二部分 常见故障判断本部分将计算机从开机一直到关机期间的故障进行分类。每一类的判断、定位过程都是第一部分中维修判断一节的有机组成部分&#xff0c;即不论使用什么方法或不论去判断什么内容&#xff0c;这两部分总是相互结合使用的。以下各故障类型中所列的故障现象只是…

linux运维基础篇 unit7

unit 71.进程定义进程就是cpu未完成的工作2.ps命令psa ##关于当前环境的所有进程x ##与当前环境无关的所有进程f ##显示进程从属关系e ##显示进程调用环境工具的详细信息l ##长列表显示进程的详细信息u ##显…

运行快捷指令无法连接服务器失败,快捷指令打不开怎么回事?iPhone快捷指令无法载入的解决办法...

经常会有果粉朋友反馈&#xff0c;自己的 iPhone 快捷指令打不开。具体表现是&#xff0c;在 Safari 浏览器中&#xff0c;打开快捷指令下载安装页面&#xff0c;点击“获取捷径”后&#xff0c;一直卡在快捷指令中心正在载入页面&#xff0c;等半天都无法正常载入需要安装的快…

maven搭建多模块项目和管理

在eclipse下构建maven项目&#xff0c;该项目由多个子模块组成。 1.创建一个父项目 NEW -->project-->maven-->maven Project&#xff0c;点击下一步&#xff0c;进入new maven Project的Select project name and location界面 &#xff0c;什么也不做&#xff0c;直接…

shsh验证服务器,教你从Cydia上取出SHSH并验证有效性!

原标题&#xff1a;教你从Cydia上取出SHSH并验证有效性&#xff01;今天在第一篇内容中和大家说了如何让32位设备进行降级&#xff0c;但这其中有个很重要的问题就是如何提取出对应设备的SHSH&#xff0c;虽然说本篇内容并不是对所有人都有效&#xff0c;但至少多了一个可选择的…

n!后面有多少个0(转载)

我的思路&#xff1a; 从”那些数相乘可以得到10”这个角度&#xff0c;问题就变得比较的简单了。 首先考虑&#xff0c;如果N的阶乘为K和10的M次方的乘积&#xff08;N&#xff01;K∗10M&#xff09;&#xff0c;那么N!末尾就有M个0。 如果将N的阶乘分解后&#xff0c;那么…

ico的尺寸_批量压缩、加水印、调整尺寸……用这 6 款 Mac 图片工具一键解决

不论是写文章、做教程&#xff0c;还是处理摄影作品、上传社交平台&#xff0c;对图片的处理肯定少不了。庞大又贵重的专业软件不仅成本较高&#xff0c;还有着不小的上手难度。如果我们仅仅是想要&#xff1a;缩小图片体积、添加水印或者批量对图片进行操作等等&#xff0c;使…

转:MAC 下安装PHONEGAP开发环境

MAC 下安装PHONEGAP开发环境 什么是Phonegap呢&#xff1f;Phonegap是一个利用HTML5去开发App的框架。可以为安卓、iOS、WP、黑莓、火狐等移动操作系统。采用HTML5来编写交互界面。其优点是编写一次可以编译到各种移动平台上&#xff0c;大大为公司节省了开发周期。但是它也是有…

从零开始学android编程_android初学者的入门秘籍

大概是去年年底开始接触android原本是学习嵌入式的我&#xff0c;领导让我看看能不能搞一下这个android APP。一开始的我懵逼得很。。。这android APP 不是得用java写吗&#xff1f;&#xff1f;&#xff1f; 现在我看网上说比较多还是用kotlin&#xff0c;没去学。。。好家伙&…

web中的cookie管理

本篇是以JSP为背景介绍&#xff0c;但是在web开发中也是相同的原理。 什么是cookie 由于http是一种无状态的协议&#xff0c;因此服务器收到请求后&#xff0c;只会当做一次新的请求。即便你重复发送了1000次同样的请求&#xff0c;这1000次都属于独立的请求。 这样显然效率很低…

unity怎么设置游戏页面_杭州有没有正规的unity游戏开发培训机构?

现在Unity游戏开发是个火热的行业&#xff0c;薪资待遇比较高&#xff0c;未来的发展方向和前景也比较不错&#xff0c;很多人也都想成为专业Unity游戏开发工程师&#xff0c;学习Unity游戏开发已经成为很多追求更好就业前景的人的选择。学习专业、系统的Unity游戏开发知识并达…

VC++ 使用attributes定义接口

1.定义预处理命令_ATL_ATTRIBUTES 2.在一个全局的Cpp文件里面配置module的attribute [module(dll, uuid "{3845951F-15B8-4286-8E7D-E9D4F5C7B6CE}", name "TestApp")]3.定义接口 [object,uuid("9F414A8A-1D5E-4aff-A60E-CFD65155ABB6"),dual,…