洛谷p1142 轟炸
數學 題意 給出若干個點,求解最多有幾個點在同一直線上
一種做法就是列舉任意兩個點,求他們的斜率然後算一下還有幾個點和他們的斜率一樣,
這樣複雜度是 o(n^3) n<=700 講道理是過不去的,但是資料太水,就過了
另外一種做法就是由樓上提供的,我是來提供**的,
列舉以乙個點作為原點,然後求其他點,與他的斜率,然後排序一下就行了
複雜度o(n^2logn)
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include7 #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 ...