牛客 兩條斜線

2021-10-10 17:00:35 字數 983 閱讀 1583

題意:斜率為±1的兩條直線最多經過幾個點。

題解:設斜率為1的直線為y=x+b1,斜率為-1的直線為y=-x+b2,b1=y-x,b2=y+x,b1或b2相同則點在這兩條直線上。所以問題變成了最多有幾個點的b1或b2相同,那麼列舉b1b2即可。

#include

using

namespace std;

map<

int,

int>mp1, mp2;

//mp1統計滿足b1的點的個數,mp2統計滿足b2的點的個數

vector<

int>v1, v2;

//b1放到v1,b2放到v2

int x[

1010

], y[

1010];

int n;

intsum

(int b1,

int b2)

//統計n個點中有幾個點的b1或b2相同

intmain()

else

if(mp1[b1]

== mx1) v1.

push_back

(b1);if

(mp2[b2]

> mx2)

else

if(mp2[b2]

== mx2) v2.

push_back

(b2);}

int res =0;

//列舉b1,b2

for(i =

0; i < v1.

size()

; i++

)for

(j =

0; j < v2.

size()

; j++

) res =

max(res,

sum(v1[i]

, v2[j]))

; cout << res << endl;

}

牛客網 列舉和暴力專項訓練 兩條斜線

平面上有n個點,現在你需要建造兩條路,一條是斜率為1,另一條斜率為 1 你的任務是讓這兩條路經過盡可能多的點 求最多經過幾個點 第一行輸入乙個整數n表示點的個數 第二行輸入n個數表示x座標 第三行輸入n個數表示y座標 1 n 1000 0 x i y i 999輸出乙個整數示例1 複製4 1 4 4...

一條分兩條

一條拆成兩條 統計當前客戶經理和客戶關係,上年底客戶經理和客戶關係 如果客戶經理和客戶關係跨越這兩個時間段,那麼一條分成兩條 with basic t as 客戶和客戶經理關係表 select 123 cust no,a am no,20091231 start dt 29991231 end dt...

兩條序列聯配

一 序列聯配的概念 序列聯配又叫序列比對,根據特定的計分規則,通過演算法對多條蛋白質序列或dna序列進行比對,找出最優匹配和最大相似度匹配。通過聯配可以得到乙個相似度比對值 根據計分規則算 這個值反映了他們的相似度 同源性 進化上的親緣關係。序列聯配分為區域性聯配和全域性聯配兩種。全域性聯配就是對整...