不知為什麼我做這道題莫名吃力,最後還是看了題解,大概是搜尋沒有學好的緣故吧。最近總是在學習一些其他的東西,現在看來還是打好基礎為妙。這道題其實不難,開三個陣列pre,next,last儲存邊與點的關係。不妨從1開始搜尋,找每條與它相鄰的邊,依次算出他們的最大子樹和,若大於零便累計起來。最後加上1節點的美麗指數,就是以1為根的最大子樹和了,其他的同理。
#include
using
namespace
std;
int next[40000],pre[40000],last[40000],book[20000],a[20000],f[20000],num=0,ans=-2147483648;
int merge(int x,int y)
int search(int x)
i=pre[i];
}f[x]=sum+a[x];
if(f[x]>ans)
ans=f[x];
return f[x];
}int main()
book[1]=1;
search(1);
cout
0; }
洛谷1115 最大子段和 解題報告
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個正整數,為最大的子段和是多少。輸入樣例 1 7 2...
樹形DP 洛谷1122 最大子樹和
又是一道樹形dp的入門題,思想非常簡單 然而我最開始還是存了兩個狀態 傳送門 小明對數學飽有興趣,並且是個勤奮好學的學生,總是在課後留在教室向老師請教一些問題。一天他早晨騎車去上課,路上見到乙個老伯正在修剪花花草草,頓時想到了乙個有關修剪花卉的問題。於是當日課後,小明就向老師提出了這個問題 一株奇怪...
洛谷P1122 最大子樹和
提交該題 討論 題解記錄 小明對數學飽有興趣,並且是個勤奮好學的學生,總是在課後留在教室向老師請教一些問題。一天他早晨騎車去上課,路上見到乙個老伯正在修剪花花草草,頓時想到了乙個有關修剪花卉的問題。於是當日課後,小明就向老師提出了這個問題 一株奇怪的花卉,上面共連有n 朵花,共有n 1條枝幹將花兒連...