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?n?(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.pswp.cn/news/259247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蘇州軟件測試11k工資要什么水平,3個月從機械轉行軟件測試,他的入職薪資是11K...

原標題&#xff1a;3個月從機械轉行軟件測試&#xff0c;他的入職薪資是11K只要找到適合自己的學習方式&#xff0c;成功轉行只是早晚的問題&#xff01;今天匯智妹給大家介紹的這位小伙伴&#xff0c;是咱們匯學聯盟平臺上的一位線上學員——小周。97年的小哥哥&#xff0c;19…

python idle 清屏問題的解決

在學習和使用python的過程中&#xff0c;少不了要與python idle打交道。但使用python idle都會遇到一個常見而又懊惱的問題——要怎么清屏?我在stackoverflow看到這樣兩種答案&#xff1a;1.在shell中輸入1 import os 2 os.system(cls) 這種方法只能在windows系統中cmd模式下的…

TCP/IP 原理--鏈路層

鏈路層作用&#xff1a; &#xff08;1&#xff09;為IP模塊發送和接收IP數據報&#xff1b; &#xff08;2&#xff09;為ARP發送ARP請求和接受ARP應答 &#xff08;3&#xff09;為RARP發送RARP請求和接受ARP應答 協議&#xff1a;以太網和SLIP協議 A.以太網協議數據封裝格式…

Sqoop拒絕連接錯誤

使用Sqoop遠程連接MySQL導入數據到HBase數據庫&#xff1a; sqoop import --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://hzhiServer:3306/myssh?autoReconnecttrue" --table table_001 --username hadoop --password 1 --hbase-table table_001 --colum…

拆解凹多邊形

偶遇需要拆解凹多邊形 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…

計算機教學的弊端,信息技術在教學中的利弊及解決對策

摘 要&#xff1a;信息技術教育已成為國家信息化事業的重要組成部分&#xff0c;是當今素質教育的重要內容之一。從闡述信息技術教育的內涵和發展階段出發&#xff0c;分析了當前信息技術在教學應用中的優勢和存在的問題&#xff0c;并提出了相應的解決對策。關鍵詞&#xff1a…

【轉】Linux命令之查看文件占用空間大小-du,df

原文網址&#xff1a;http://blog.csdn.net/wangjunjun2008/article/details/19840671 du(disk usage),顧名思義,查看目錄/文件占用空間大小#查看當前目錄下的所有目錄以及子目錄的大小$ du -h $ du -ah #-h:用K、M、G的人性化形式顯示 #-a:顯示目錄和文件 du -h tmp du -ah tm…

一個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…

php四種基礎算法:冒泡,選擇,插入和快速排序法

許多人都說 算法是程序的核心&#xff0c;一個程序的好于差,關鍵是這個程序算法的優劣。作為一個初級phper&#xff0c;雖然很少接觸到算法方面的東西 。但是對于冒泡排序&#xff0c;插入排序&#xff0c;選擇排序&#xff0c;快速排序四種基本算法&#xff0c;我想還是要掌握…

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編程也成了整個開…

C++11系列學習之三----array/valarray

創建數組&#xff0c;是程序設計中必不可少的一環。我們一般可以有以下幾種方法來創建數組。 一、C內置數組 數組大小固定&#xff0c;速度較快 通用格式是&#xff1a;數據類型 數組名[ 數組大小 ]; 如 int a[40];//一維數組 int a[5][10];//二維數組 二、vector創建數組 包…

實驗7綜合練習

一、填空&#xff1a;閱讀下列程序說明和程序&#xff0c;在可選答案中&#xff0c;挑選一個正確答案。填補(1) (2) (3) (4)處空白&#xff0c;并注釋說明為什么。 程序說明 求 1 2/3 3/5 4/7 5/9 … 的前15項之和。 運行示例&#xff1a; sum 8.667936 程序如下&#x…

計算機專業課的教學準備,計算機專業課程教學中的分層教學模式

《計算機專業課程教學中的分層教學模式》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《計算機專業課程教學中的分層教學模式(5頁珍藏版)》請在人人文庫網上搜索。1、編號&#xff1a;XXXX時間&#xff1a;2021年x月x日Error! No text of specified style in documen…

angular-過濾器

過濾器描述currency格式化數字為貨幣格式。filter從數組項中選擇一個子集。lowercase格式化字符串為小寫。orderBy根據某個表達式排列數組。uppercase格式化字符串為大寫。內容中&#xff1a;數值轉為貨幣格式 <p>總價 {{ (quantity * price) | currency }}</p> 排…

SSH三大框架的工作原理及流程

Hibernate工作原理及為什么要用? 原理&#xff1a; 1.通過Configuration().configure();讀取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的<mapping resource"com/xx/User.hbm.xml"/>讀取并解析映射信息 3.通過config.buildSessionFactory();/…

二分查找法(遞歸與循環實現)

問題&#xff1a; 給定一個排序數組和一個數k&#xff0c;要求找到第一個k的位置和最后一個k的位置 解析&#xff1a; 由于給定的數組是從小到大排序的&#xff0c;故可以按照二分查找法來找&#xff0c;下面分別從遞歸和循環兩種方法來闡述&#xff1a; //遞歸方法 int GetF…

電腦顯示器變色_電腦維修(看完后就可以開一家自己的電腦維修店!)

第二部分 常見故障判斷本部分將計算機從開機一直到關機期間的故障進行分類。每一類的判斷、定位過程都是第一部分中維修判斷一節的有機組成部分&#xff0c;即不論使用什么方法或不論去判斷什么內容&#xff0c;這兩部分總是相互結合使用的。以下各故障類型中所列的故障現象只是…