ÌâÒ⣺
long long ans = 0;
for(int i = 1; i <= n; i++)
for(int j = i+1; j <= n; j++)
ans += F(i,j);
F(i,j)±íʾiµãµ½jµã·¾¶ÉÏËùÓеĵãȨºÍ¡£
Èôi->j·¾¶ÉÏ´æÔÚ2ÌõÏàÁڱ߱ßȨÏàͬÔò F(i,j) = 0
ÎÊ£ºansµÄÖµ¡£
int³Ë·¨±¬µôÁËÎÒÒ²×íÁË¡£¡£¡£
˼·£º
ºÍÍøÉϵÄͳ¼Æ±ß·½·¨²»Í¬£¬ÕâÀïÊÇÓÃͳ¼Æµã³öÏֵĴÎÊýÀ´¼ÆËã
ÎÒÃǼÆËãÿ¸öµãi ³öÏֵĴÎÊý£¬Ôò´ð°¸¾ÍÊÇ iµÄ´ÎÊý*iµÄµãȨ => dp[i] * a[i]
¶øi³öÏֵķ¾¶ÆðµãºÍÖÕµãÓÐ4ÖÖ
1¡¢iµÄ×ÓËï->iµÄ×ÓËï
2¡¢iµÄ×ÓËï->i
3¡¢iµ½ £¨·ÇiµÄ×ÓË ¼´iµÄ׿ÏȽڵ㣬ÐֵܽڵãºÍÐֵܽڵãµÄ×ÓËï
4¡¢iµÄ×ÓËï->·ÇiµÄ×ÓËï
ËùÒÔÏȼÆËã1,2µÄÇé¿ö £¬ÓÃdp1[i]¼Ç¼
3£¬4µÄÇé¿öÓÃdp2[i]¼Ç¼
Ôò´ð°¸¾ÍÊÇ for(int i = 1; i <= n; i++) ans += a[i] * (dp1[i]+dp2[i]);
siz[u] ±íʾÒÔuΪ¸ùµÄ×ÓÊ÷ÖÐÓÐЧµÄ½ÚµãÊý£¬Èô u -> v(col = 1) && v -> k(col=1), ÔòÒÔkΪ¸ùµÄ×ÓÊ÷¶¼²»ÊÇÓÐЧ½Úµã
(ÆäÖÐvÊÇuµÄ¶ù×Ó£¬kÊÇvµÄ¶ù×Ó£©
mp[u][col]±íʾÒÔuΪ¸ù£¬ÓÐЧ½ÚµãÖÐ ÓÃÑÕɫΪcolµÄ±ßÏàÁ¬µÄ½Úµã¸öÊý
#include