考察點 : 樹的直徑
坑點 : long long, 是點權不是邊權
乙個點也算一條鏈
關於樹的直徑
這道題考察的是樹的直徑,最好用樹形dp來寫,具體解釋詳見上述部落格,
這道題不友好的地方是把原先的邊權搞成了點權,這就讓人十分的頭疼,
一頭疼這道題就涼涼,哈哈,可能還是對這個知識點掌握的不夠到位吧
#include #include #include #include #include #include #define inf 0x3f3f3f3f
using namespace std;
const int maxn = 1e5 + 10;
typedef long long ll;
int head[maxn],next[maxn << 1],ver[maxn << 1];
ll vis[maxn],a[maxn],dist[maxn];
int n,tot = 0;
ll ans = -inf;
int main(void)
int u,v;
for(int i = 1; i < n; i ++)
dp(1);
cout << ans << endl;
return 0;
}void add(int u,int v)
void dp(int u)
// 更新其父節點
dist[u] += mx;
return ;
}
牛客小白月賽22 B題(樹的直徑 dp)
題目鏈結 這個題目找最長的鏈其實就是找樹的直徑,不過需要注意的是一般求樹的直徑,長度一般都是邊的權值相加,但這裡是點的權值相加。接著就開始求最長鏈了。如何求最長鏈?首先我們要建立乙個無向圖,把所有的點和邊連線起來,然後開始嘗試經過每乙個點的最長鏈,從而找到最長的鏈。求經過某個點的最長鏈時,我們可以先...
Wannafly挑戰賽22B 字元路徑(動態規劃)
字元路徑 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 給乙個含n個點m條邊的有向無環圖 允許重邊,點用1到n的整數表示 每條邊上有乙個字元,問圖上有幾條路徑滿足路徑上經過的邊上的字元組成的的字串去掉空格後以大...
牛客小白月賽22
d題 題目鏈結 解題思路 直接暴搜,因為只有10個卡片嘛10 所以最多計算 10 10!次,直接列舉全排列算就可以了 include include using namespace std const int inf 0x3f3f3f3f int x 22 y 22 c 22 int main do...