洛谷P1142 轟炸 數學

2022-08-05 04:27:10 字數 1194 閱讀 4689

洛谷p1142 轟炸

數學 題意 給出若干個點,求解最多有幾個點在同一直線上

一種做法就是列舉任意兩個點,求他們的斜率然後算一下還有幾個點和他們的斜率一樣,

這樣複雜度是 o(n^3) n<=700 講道理是過不去的,但是資料太水,就過了

另外一種做法就是由樓上提供的,我是來提供**的,

列舉以乙個點作為原點,然後求其他點,與他的斜率,然後排序一下就行了

複雜度o(n^2logn)

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 

7 #include 8 #include 9

using

namespace

std ;

1011

const

int maxn = 709;12

const

double inf =1e9 ;

13struct

node;

16 node a[701

] ;17

intn,ans,sum ;

18double

x,y,dist[maxn] ;

1920

intmain()

2127 ans = min(2

,n) ;

28for(int i=1;i<=n;i++)

2938

if(a[i].x==a[j].x) dist[ j ] =inf ;

39 dist[ j ] = (double)(a[j].y-a[i].y) / (a[j].x-a[i].x) ; 40}

41 sort(dist+1,dist+n+1

) ;42 sum = 0;43

for(int j=1;j<=n;j++)

44if(dist[j]!=dist[j-1

])

4549

else sum++;

50 ans = max(ans,sum+1

) ;51}52

if(n==1) ans = 1

;53 printf("%d"

,ans) ;

5455

return0;

56 }

洛谷P1830 轟炸III

題目背景 乙個大小為n m的城市遭到了x次轟炸,每次都炸了乙個每條邊都與邊界平行的矩形。題目描述 在轟炸後,有y個關鍵點,指揮官想知道,它們有沒有受到過轟炸,如果有,被炸了幾次,最後一次是第幾輪。輸入格式 第一行,四個整數 n m x y。以下x行,每行四個整數 x1 y1 x2 y2,表示被轟炸的...

洛谷P1830 轟炸III

題目鏈結 題目背景 乙個大小為n m的城市遭到了x次轟炸,每次都炸了乙個每條邊都與邊界平行的矩形。題目描述 在轟炸後,有y個關鍵點,指揮官想知道,它們有沒有受到過轟炸,如果有,被炸了幾次,最後一次是第幾輪。輸入格式 第一行,四個整數 n m x y。以下x行,每行四個整數 x1 y1 x2 y2,表...

洛谷P5087 數學

題目鏈結 思路 乙個很容易想的dp 設 f i,jf fi,j 表示在前 i ii 個數中取 j jj 個所得到的乘積。則 f i,j fi 1,j fi 1,j 1 ai i 0,j 0 f f f a i quad i 0,j 0 fi,j fi 1 j fi 1 j 1 ai i 0,j 0 ...