題意:斜率為±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序列進行比對,找出最優匹配和最大相似度匹配。通過聯配可以得到乙個相似度比對值 根據計分規則算 這個值反映了他們的相似度 同源性 進化上的親緣關係。序列聯配分為區域性聯配和全域性聯配兩種。全域性聯配就是對整...