CodeForces 183B 幾何 暴力

2021-09-26 13:19:17 字數 861 閱讀 6194

給出n

nn個橫座標從1

11到n

nn,縱座標為0

00的點,以及m

mm個平面上的點,求從前面每個點任意角度作射線,問總共最多能覆蓋到多少個點,點可以被重複覆蓋。

注意到m

mm只有250

25025

0,直接考慮暴力列舉所有可能的斜率,然後對於每個斜率列舉所有點判斷點是否在這條直線上。然後再判斷這條直線落在x

xx軸是否是1−n

1-n1−

n的整點。如果是則更新這個點的答案。

有一些小的細節,比如直線的斜率,以及精度的問題。複雜度是o(n

3)

o(n^3)

o(n3)的。

#includeusing namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const ll inf=long_long_max;

const int n=307;

const int m=1e6+3;

struct point

point(int _x,int _y):x(_x),y(_y) {}

}p[n];

int ans[m];

bool check(point a,point b,point c)

int main()

} }ll res=0;

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

res+=max(ans[i],1);

printf("%lld\n",res);

return 0;

}

CODEFORCES 535B 解題報告

仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...

CodeForces 816B(區間計數)

codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...

Codeforces 965B 題解報告

當k 1時,取第乙個 的座標即可 當k 1時,需要求出每乙個點在上下左右四個方向所能到達的最遠處,記為up,down,left,right,再取上下方向和左右方向的和的最大值,即 max 0,up down k max 0,left right k n,k map int,input split a...