某市的m
mm公園中有乙個近乎圓形的湖,有100
10010
0個主要景點分布在湖邊,為了方便遊客,公園在一些景點之間開設了直通的摩托飛艇擺渡的專案一來減少遊客在景點到景點之間所花的時間,二來也可以讓遊客體驗一下驚險刺激的摩托飛艇。果然摩托飛艇擺渡專案大為成功,為了充分滿足遊客需要,擺渡線路越來越多。不料隨著線路的增加,危險性也隨之增加。如果兩個擺渡線路之間有交叉(如圖),在這兩個線路上的飛艇一旦發生碰撞,後果將不堪設想。
公園的管理層近日做出決定,本著安全第一的原則,在這個湖上取消一些線路,使剩下的任意兩條線路在行駛階段(即不考慮碼頭)不交叉。同時,考慮到經濟效益,他們要求被取消的線路數最小,即保留盡量多的線路。他們希望你能夠幫助他們算一算最多可以保留多少條線路。
區間d pdp
dpccc就是圓周的長,根據題意c
=100
c=100
c=10
0,要保證len
,i,j
,klen,i,j,k
len,i,
j,k都不不會超過圓周的長,就需要形成乙個環,可用在後面複製一遍陣列
由於是乙個列舉所有節點的過程,所以+1。對於每條邊,刪和不刪之間有乙個最優解,即 (f[
i][k
]+f[
k][j
]+v[
i][j
])∣∣
(f[i
,j]+
0)(f[i][k]+f[k][j]+v[i][j]) || (f[i,j]+0)
(f[i][
k]+f
[k][
j]+v
[i][
j])∣
∣(f[
i,j]
+0)。
v [i
][j]
v[i][j]
v[i][j
]表示節點i
ii到j
jj有一條邊
#include#includeusing namespace std;
int n,a,b,ans,t;
int f[205][205];
int main()
for(int len=2;len<=100;len++)
for(int i=1;i<200-len;i++)
printf("%d",ans);
}
東莞市2023年特長生 T4 柵欄的木料
給出n nn個木板,要從這些木板中分出k kk個木料 二分 搜尋 剪枝即可 預處理 將木板和木料都從小到大排序 二分列舉分出前mid midmi d個木料,是否可以分出 搜尋判斷是否可以分出 剪枝 1 w ww為浪費,tot totto t為總長度,對於一塊木材,將其切斷一部分滿足一些木板後,倘若剩...
東莞市2023年特長生 T3 工程
一天公司接下一項大型工程,該公司在大型工程的施工前,先要把整個工程劃分為若干個子工程,並把這些子工程編號為1 2 n 1 2 n 1 2 n 這樣劃分之後,子工程之間就會有一些依賴關係,即一些子工程必須在某些子工程完成之後才能施工,公司需要工程師張三計算整個工程最少的完成時間。對於上面問題,可以假設...
東莞市2023年特長生 T3 糊塗的教授
給出n nn個矩形和n nn個點,若乙個點被乙個矩形包含則表明這之間有關係 求一種方案為每個點都有乙個對應的關係,且這種方案是唯一的。若沒有或方案不唯一則輸出 none 把n nn個矩形和n nn個點之間有關係的連一條邊,若其中乙個矩陣唯一可以對應乙個點,則和那個點相連,並把這對的點和矩陣擦掉。一直...