qzezoj 1592 三角形計數

2021-10-04 20:57:01 字數 1305 閱讀 2215

題面傳送門

題目告訴我們,沒有三點共線,所以我們可以容斥。

兩條線,x,y

x,yx,

y相等,即平行。那麼我們可以用總可能數-2

22條直線平行-3

33條直線平行。

用h as

hhash

hash

來判斷平行線。

**實現:

#include

#include

#include

#define mod 600017

using

namespace std;

long

long n,ans,pus,flag[

300039

],tot[

300039

],f1[

300039

],f2[

300039

],z[

300039

],h[

600039

],g[

300039

],head,sx[

300039

],sy[

300039

],sz[

300039];

inline

void

add(

long

long x,

long

long y)if(

!ss) f1[

++head]

=x,f2[head]

=y,z[head]

=h[now]

,h[now]

=head,g[head]=1

;else g[ss]++;

}inline

long

long

_hash

(long

long x,

long

long y)if(

!flag[ss]

)return0;

}inline

void

read

(long

long

&x)while

(s>=

'0'&&s<=

'9') x=

(x<<3)

+(x<<1)

+(s^48)

,s=getchar()

; x*

=f;}

intmain()

}printf

("%lld\n"

,ans)

;}

382 三角形計數 LintCode

給定乙個整數陣列,在該陣列中,尋找三個數,分別代表三角形三條邊的長度,問,可以尋找到多少組這樣的三個數來組成三角形?例如,給定陣列 s 返回3 其中我們可以找到的三個三角形為 給定陣列 s 返回4 其中我們可以找到的三個三角形為 原理 三角形兩邊之和大於第三邊,一種思路是暴力迴圈三次,這裡作不討論 ...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...

經典演算法 (三)帕斯卡三角形(楊輝三角形)

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。簡介 楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在165...