題面傳送門
題目告訴我們,沒有三點共線,所以我們可以容斥。
兩條線,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...