題目大意
給定平面上的n個點,找乙個矩形,使得邊界上包含盡量多的點。
分析
不難發現除非所有的點都在同一條直線上,否則矩陣的四條邊至少會有乙個點(乙個角上的點同時算在兩條邊上).這樣,我們列舉4條邊界所穿過的點,然後統計點數,這樣做的複雜符很高,資料量無法承受。
和子串行一樣我們考慮部分列舉,只列舉矩形的上下界。用其他方法定義左右邊界。
當乙個矩形的上下邊界確定後,我們來計算左右邊界點。我們定義left(i)為以i為右邊界的上下邊界的數,定義on(i)和on2(i)為邊界本身不屬於上下邊界的點以及算上下邊界的點;這樣對於乙個矩形,總點數為left(j)-left(i)+on(i)+on(j) (j>i) 我們進一步的優化 當邊界j 確定是 on(i)-left(i)應為最大
上**
#include#include#include#define maxn 100+10
using namespace std;
struct po
};po star[maxn];
int le[maxn], on[maxn], on2[maxn];
int y[maxn];
int n;
int solve()
if (k <= 2)
return n;
m = 0;
for (int j = 1; j <=k; j++)
}} return ans;
}int main()
printf("case %d: %d\n", k++, solve());
} return 0;
}
uvalive3695 降維 掃瞄
題意 給出 個點,讓你找乙個矩形,是最多的點在矩形邊上 思路 看了大白的思路 就是列舉矩形的上下邊 然後每次列舉出上下邊界,就從左往右掃瞄描 left i 表示從這條豎線往左一共幾個點在上下兩邊 on i 和on2 i 都表示這條豎線上有幾個點,on不包括上下邊的,而on2包括 include in...
leetcode Day3 695 島嶼的最大面積
今天看到的小段子。鋼鐵俠在中國是怎麼誕生的,本科他讀了機械,考研準備跨考計算機,不幸被刷調劑去了材料。題目 記 python非常適合當做打草稿,先用python驗證程式設計思想,再用其他程式實現 int maxareaofisland int grid,int gridsize,int gridco...
poj 3695 Rectangles 容斥原理
在容斥原理題單裡看到這個題,第一想法肯定是掃瞄線啊。但一看題單分析,還真是容斥。矩形相交的圖形和文氏圖差不多。然後dfs容斥就好了 題單裡第四題 include include include using namespace std struct rec rec rec 30 int nums 30...