由於john建造了牛場圍欄,激起了奶牛的憤怒,奶牛的產奶量急劇減少。為了討好奶牛,john決定在牛場中建造乙個大型浴場。但是john的奶牛有乙個奇怪的習慣,每頭奶牛都必須在牛場中的乙個固定的位置產奶,而奶牛顯然不能在浴場中產奶,於是,john希望所建造的浴場不覆蓋這些產奶點。這回,他又要求助於clevow了。你還能幫助clevow嗎?
john的牛場和規劃的浴場都是矩形。浴場要完全位於牛場之內,並且浴場的輪廓要與牛場的輪廓平行或者重合。浴場不能覆蓋任何產奶點,但是產奶點可以位於浴場的輪廓上。
clevow當然希望浴場的面積盡可能大了,所以你的任務就是幫她計算浴場的最大面積。
輸入檔案的第一行包含兩個整數l和w,分別表示牛場的長和寬。檔案的第二行包含乙個整數n,表示產奶點的數量。以下n行每行包含兩個整數x和y,表示乙個產奶點的座標。所有產奶點都位於牛場內,即:0<=x<=l,0<=y<=w。
輸出檔案僅一行,包含乙個整數s,表示浴場的最大面積。
10 10
41 1
9 11 9
9 9
80
各個測試點1s
0<=n<=5000
1<=l,w<=30000
winter camp 2002
1 #include 2 #include 3 #include 4 #include 5 #include 67view codeusing
namespace
std;89
const
int maxn=5003;10
struct
nodepoi[maxn];
13bool
cmp1(node a,node b)
16bool
cmp2(node a,node b)
1920
intmain()
2128 poi[++n].x=0,poi[n].y=w;
29 poi[++n].x=0,poi[n].y=0
;30 poi[++n].x=l,poi[n].y=0
;31 poi[++n].x=l,poi[n].y=w;//
加入邊界點
32 sort(poi+1,poi+n+1,cmp1);//
橫向排序
33//
左邊覆蓋乙個障礙點的情況
34int maxarea=0;35
for(int i=1;i<=n;i++)46}
47//
右邊覆蓋乙個障礙點的情況
48for(int i=n;i>=1;i--)59}
60//
兩邊都在邊界上的情況
61 sort(poi+1,poi+n+1,cmp2);//
縱向排序
62int maxgap=0;63
for(int i=1;i)
66 maxarea=max(maxgap*l,maxarea);
67 printf("
%d\n
",maxarea);
68return0;
69 }
很標準的極大化思想(可用懸線法
看思路點這裡
一定要左邊掃瞄一遍右邊掃瞄一遍
再強調一下sort的用法!第二個引數是最後一位再後面一位
以及看到有大佬把除了左邊以外的所有情況歸結到縱向掃瞄的方法上去,在這裡也貼一下
1//2view code//@vijos
3 #include 4 #include 5
using
namespace
std;
6const
int maxn=5005;7
8int
ans;
9int
l,w,n;
10struct nodee[maxn];
11 inline bool cp1(node a,node b)
12 inline bool cp2(node a,node b)
1314
intmain()
1535
if(u==d) break;36
}37}38 sort(e+1,e+n+1
,cp2);
39for(int i=1;i)
4050
if(u==d) break;51
}52}53 printf("%d"
,ans);
54return0;
55 }
18 03 20 vijos1059積木城堡
xc的兒子小xc最喜歡玩的遊戲用積木壘漂亮的城堡。城堡是用一些立方體的積木壘成的,城堡的每一層是一塊積木。小xc是乙個比他爸爸xc還聰明的孩子,他發現壘城堡的時候,如果下面的積木比上面的積木大,那麼城堡便不容易倒。所以他在壘城堡的時候總是遵循這樣的規則。小xc想把自己壘的城堡送給幼兒園裡漂亮的女孩子...
VI 個人常用vi命令(持續更新中
設定顯示行號 set nu 隱藏行號 set nonu 刪除全部內容 首先,使用gg調整游標到首行,然後使用dg命令即可。檔案內替換 s abc 123 g 如檔案內有 可用 替換,s abc 123 g 通過軟連線和別名alias來讓自定義指令碼可以在當前shell環境中任意被呼叫。第一步 檢視p...
簡易vi指南
vim 中可供使用者定製的選項非常非常多,作為初學者,我們沒有必要了解這麼多東西。下面,滇狐簡單列出了一些最常用的配置項,大家可以根據自己的需要將這些內容新增到自己的 vimrc 中。set ru 該命令開啟 vim 的狀態列標尺。預設情況下,vim 的狀態列標尺在螢幕底部,它能即時顯示當前游標所在...