POJ 1981 定長圓覆蓋最多點

2022-05-24 03:18:09 字數 2493 閱讀 5870

題意:

一些點,求乙個單位圓最多能覆蓋的點的個數,不存在兩點距離恰好為2.

題解:暴力列舉兩個點,求圓心,然後列舉每個點驗證是否在圓內。n^3的,可以過~

當然還有n^2logn的轉化為求圓的最大弧的覆蓋次數問題(以後做ciru 的時候也會用到這個技術~)

n^3view code

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

8#define n 333

9#define eps 1e-7

10#define pi 3.141592653589793238

11#define inf 1e10

1213

using

namespace

std;

1415

struct

po16

19}p[n];

2021

intn,ans;

2223

const

double r=1.0;24

25 inline void

read()

2629

30 inline po operator +(po a,po b)

3136

37 inline po operator -(po a,po b)

3843

44 inline int dc(double

x)45

5051 inline double getdis2(po &a,po &b)

5255

56 inline double getlen(po &a)

5760

61inline po rotate(po a)

6268

69 inline po geto(po &a,po &b)

7081

82 inline void check(po &o)

8389

90 inline void

go()

91102 printf("

%d\n

",ans);

103}

104105

intmain()

106

n^2logn

view code

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

8#define n 777

9#define pi 3.141592653589

10#define eps 1e-7

1112

using

namespace

std;

13//

定長圓覆蓋最多點,轉為最大弧覆蓋次數

14structc15

18}c[n];

1920

structt21

25 }t[n<<2

];26

27int

n,cnt,ans;

28double ccd,r=1.0;29

30 inline int dc(double

x)31

3637 inline c operator +(c a,c b)

3843

44 inline c operator -(c a,c b)

4550

51 inline c operator *(c a,double

k)52

5657 inline c operator /(c a,double

k)58 62

63 inline void

read()

6470}71

72 inline bool cmp(const t &a,const t &b)

7377

78 inline double getdis(const c &a,const c &b)

7982

83 inline c getf(const c &a,const c &b)//

單位法向量

8490

91 inline void getcpoint(const c &c1,const c c2,c &a,c &b)

92101

102 inline void

go()

103124

else

125129

}130 sort(t+1,t+1+cnt,cmp);

131int res=0

;132

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

133137

}138 printf("

%d\n

",ans+1

);139

}140

141int

main()

142

打家劫舍(198)

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你不觸動警報裝置的情況下 一夜之內能夠偷竊到的最高金額。示例 1 輸...

LeetCode 打家劫舍(198)

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...

198House Robber打家劫舍

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...