給一棵\(n\)個點的樹,每條邊的邊權為\(1\)。從\(0\)號點開始走,問走\(k\)步,最多能都多少個不重複的點(包括\(0\)號點)
\(2 \leq n \leq 1000\)
\(1 \leq k \leq 3000\)
貪心。可以先考慮最長鏈,只有最長鏈走的盡可能長,才會使得結果最優。最長鏈上的點,每走一步,都會走到乙個新點
然後再考慮非最長鏈上的點,如果要走非最長鏈上的點,那麼就需要從最長鏈上的點走過去,然後再回到最長鏈上,相當於路徑走了兩次,也就是每走兩步,會到達乙個新點。
那麼我們可以先統計最長鏈上點的個數,與\(k\)比較,然後再看看剩下的步數能走多少點。
#include #include #include #include using namespace std;
const int n = 1010, m = 2 * n;
int n, k;
int h[n], e[m], ne[m], idx;
int dist[n];
void add(int a, int b)
void dfs(int u, int fa, int dep)
}int main()
dfs(0, -1, 0);
int max_long = 0;
for(int i = 1; i <= n; i ++) max_long = max(max_long, dist[i]);
if(k <= max_long) printf("%d\n", k + 1);
else
return 0;
}
繼續努力送快遞!
閒了有半個多月了,這段日子沒什麼事,基本上每天就發發快遞 學學技術 看看書和電影。昨天我還自嘲說 繼續努力送快遞 被人戲稱 it 界的快遞員。送快遞無非就是跑跑腿,沒什麼技術含量。但我想估計在未來還是會一路送下去吧。也有人懷疑我是不是轉行了。暫且還沒有,還在搞運維。今天我又發現了乙個新大陸,也是之前...
2017 12 02普及組模擬 送快遞
petya和vasya被聘為快遞員。在工作日期間,他們將提供包裹到線上的不同點。根據公司的內部規定,包裹的交付必須嚴格按照一定的順序進行。最初,petya處於座標s1的點,vasya位於座標s2的點,n個顧客所需訪問的順序位於點x1,x2,xn。這些人預先同意他們誰將交付給哪些客戶,然後他們的行為如...
送快遞的最短路徑
題目描述 某物流派送員p,需要給a b c d4個快遞點派送包裹,請問派送員需要選擇什麼的路線,才能完成最短路程的派送。假設如圖派送員的起點座標 0,0 派送路線只能沿著圖中的方格邊行駛,每個小格都是正方形,且邊長為1,如p到d的距離就是4。隨機輸入n個派送點座標,求輸出最短派送路線值 從起點開始完...