典型的樹上求兩點間距離最大值,lca的做法
這題要求同乙個陣營,不妨先將同屬乙個陣營的先存進陣列,之後每組進行比較
比較時取出深度最深的,因為這個一定是答案中兩點中的其中乙個答案,這是樹的性質,不妨可以想一想
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int n=2e5+10
;int
depth[n];
int fa[n][21
];int
ne[n],e[n],h[n],idx;
intn;
inta[n];
vector
num[n];
void add(int a,int
b)bool cmp(int a,int
b)void
bfs()}}
}}int lca(int a,int
b) }
if(a==b)
for(i=20;i>=0;i--)
}return fa[a][0];}
intmain()
for(i=1;i)
bfs();
int res=0
;
for(i=1;i<=n;i++)}}
cout
}
張經理的員工 (西工大校賽A題)
張經理的公司的辦公室長達100000公尺,從最左端開始每間隔1公尺都有乙個工位 從第1公尺開始有工位 位於第i公尺的工位稱為i號工位,且這些工位都在一條水平線上。他有n個員工,每個員工分別位於xi號工位上 不同員工可能位於同乙個工位 現在張經理想把員工聚集在某兩個工位上,他有q套方案 每套方案包含兩...
西工大《C 程式設計》 (二)
程式對演算法的實現體現為一定數量的語句和執行流程。c 語句 分簡單語句 表示式語句 函式呼叫語句 空語句 復合語句 控制語句。輸入輸出 c 的輸入輸出都是用流物件實現的。cin輸入時可用空格 tab和回車分隔資料。那如何將這三者賦值給字元變數呢?單路分支 if.與多路分支 if.else.switc...
西工大《C 程式設計》 (三)
一維陣列的定義 記憶體形式 連續儲存 初始化。靜態陣列與動態陣列的初始值。二維陣列的定義 記憶體形式 按行連續儲存 初始化。多維陣列的引用。陣列元素作為函式引數。整個陣列作為函式引數,傳遞的是陣列的首位址,所以實參和形參為同乙個物件。陣列作為函式引數時,編譯器不檢查陣列的長度,因此將陣列的首位址傳入...