牛客第二場 B Boundary

2022-05-22 17:39:08 字數 2056 閱讀 2730

boundary

給定n個二維平面上的點,問哪乙個經過原點的圓的邊界上包含的所給點最多
三點確定乙個圓(保證三個點不共線),由於題目已經確定了(0, 0)所以我們還需要列舉其餘

兩個點,由於(0, 0)這個點一定在圓上,所以只要我們確定了乙個圓心就可以唯一確定乙個

圓,使用map記錄每乙個圓心會對應的圓經過了多少個點,最後輸出最值即可;

確定圓心的方法:使用圓的一般式(使用幾何方法一直不對,可能是精度問題):

x²+y²+dx+ey+f=0(d²+e²-4f>0)

圓心:(-d/2, -e/2)

半徑:sqrt(d^2+e^2-4*f)/2

#pragma gcc optimize(2)

#include#include#include#include#include#include#include#include#include#include#include#include#define buff ios::sync_with_stdio(false)

#define rush() int case = 0; int t; cin >> t; while(t--)

#define rep(i, a, b) for(int i = a; i <= b; i ++)

#define per(i, a, b) for(int i = a; i >= b; i --)

#define reps(i, a, b) for(int i = a; b; i ++)

#define clc(a, b) memset(a, b, sizeof(a))

#define buff ios::sync_with_stdio(false)

#define readl(a) scanf("%lld", &a)

#define readd(a) scanf("%lf", &a)

#define readc(a) scanf("%c", &a)

#define reads(a) scanf("%s", a)

#define read(a) scanf("%d", &a)

#define lowbit(n) (n&(-n))

#define pb push_back

#define lson rt<<1

#define rson rt<<1|1

#define ls lson, l, mid

#define rs rson, mid+1, r

#define y second

#define x first

using namespace std;

typedef long long ll;

typedef unsigned long long ull;

typedef pairpii;

const int mod = 1e9+7;

const double eps = 1e-8;

const double pi = acos(-1);

const int n = 2e3+7;

int dcmp(double x)

struct point

};typedef point vector;

double operator ^ (const vector & v, const vector & w)

vector operator - (const vector & v, const vector & w)

bool operator < (const vector & v, const vector & w)

mapmp;

point p[n];

int res = 0;

void print(char c, point t)

; }

point o = ;

rep(i, 0, n-2)

}cout << res+1

41 1

0 22 0

2 2*/

牛客第二場 Boundary

題意 給n個點,求最多多少個點共圓且該圓過原點。三個不共線的點即可確定乙個圓。利用圓心公式,直接列舉兩個點與圓點求圓心,圓心最多的就是答案,圓心公式直接套的板子。include include include using namespace std const int n 2e3 10 double...

18牛客第二場 J farm

示例1輸入 2 2 2 1 22 3 1 1 2 2 2 2 1 2 1 1 輸出題意 給出乙個n m的區域,t次操作 每個點都是一種植物 t次操作區域覆蓋肥料,如果區域裡面的植物不等於覆蓋的飛亮那麼就植物死亡,求有多少植物死亡。思路 我們將每種植物的座標存下來,然後我也將每種肥料的覆蓋區域座標存下...

牛客多校第二場 J farm

輸入描述 the first line of input contains 3 integers n,m,t n m 1000000,t 1000000 for the next n lines,each line contains m integers in range 1,n m denotin...