題意:
你準備遊覽乙個公園,該公園由 n 個島嶼組成,當地管理部門從每個島嶼出發向另外乙個島嶼建了一座橋,不過橋是可以雙向行走的。
同時,每對島嶼之間都有一艘專用的往來兩島之間的渡船。
相對於乘船而言,你更喜歡步行。
你希望所經過的橋的總長度盡可能的長,但受到以下的限制:
可以自行挑選乙個島開始遊覽。
任何乙個島都不能遊覽一次以上。
無論任何時間你都可以由你現在所在的島s去另乙個你從未到過的島d。由s到d可以有以下方法:
(1)步行:僅當兩個島之間有一座橋時才有可能。對於這種情況,橋的長度會累加到你步行的總距離中。
(2)渡船:你可以選擇這種方法,僅當沒有任何橋和以前使用過的渡船的組合可以由s走到d(當檢查是否可到達時,你應該考慮所有的路徑,包括經過你曾遊覽過的那些島)。
注意,你不必遊覽所有的島,也可能無法走完所有的橋。
請你編寫乙個程式,給定n座橋以及它們的長度,按照上述的規則,計算你可以走過的橋的最大長度。
輸入格式
第1行包含整數 n 。
第 2… n+1 行,每行包含兩個整數 a 和 l,第 i+1 行表示島嶼 i 上建了一座通向島嶼 a 的橋,橋的長度為 l。
輸出格式
輸出乙個整數,表示結果。
對某些測試,答案可能無法放進32-bit整數。
資料範圍
2≤n≤106,
1≤l≤108
思路:
找基環樹的直徑。
本題是乙個基環森林,可以從一棵基環樹跳到其他基環樹上,所以基環樹之間不會影響,要求的就是每個基環樹的直徑。
解決基環樹問題,先將基環樹的環抽取出來。
基環樹直徑有兩種可能:
直徑是環上某個節點子樹的直徑
算出環上節點到子樹最大距離dep
[i
]dep[i]
dep[i]
,然後結果就是環上節點的組合。也就是max
(dep
[i]+
dep[
j]+m
ax(l
en,l
en−d
is(i
,j))
max(dep[i]+dep[j]+max(len,len-dis(i,j))
max(de
p[i]
+dep
[j]+
max(
len,
len−
dis(
i,j)
)。這個就是乙個環形dp問題了,可以用單調佇列解決。
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
2e6+7;
int to[maxn]
,head[maxn]
,nex[maxn]
,val[maxn]
,tot;
void
add(
int x,
int y,
int z)
struct node fa[maxn]
,loop[maxn]
;int dfn[maxn]
,id,cnt;
void
get_loop
(int x)
;for
(;y != x;y = fa[y]
.x)}
else}}
ll mx;
int vis[maxn]
,pos,now;
void
dfs(
int x,
int fa,ll w)
for(
int i = head[x]
;i;i = nex[i])}
ll sum[maxn]
,dep[maxn]
;int q[maxn]
;ll f
(int i)
intmain()
ll ans =0;
for(
int i =
1;i <= n;i++
)for
(int j =
1;j <= cnt;j++
)for
(int j =
1;j <= cnt;j++
)int l =
1,r =0;
for(
int j =
1;j <=
2* cnt;j++
)while
(l <= r &&
f(q[r]
)<=
f(j)
) q[
++r]
= j;
} ans +
= tmp;}}
printf
("%lld\n"
,ans)
;return0;
}
358 檔案上傳解析
檔案上傳解析 閱讀鴻洋大神部落格筆記 如果是瀏覽器上傳檔案,其實是把檔案資料轉換成2進製 然後按特定的格式傳送給伺服器 android也是乙個道理 先看看 然後再分析 public void uploadform mapparams,string fileformname,file uploadfi...
NYOJ 題目358 取石子 五)(博弈)
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 himdd最近很想玩遊戲,於是他找到acmj和他一起玩,遊戲是這樣的 有一堆石子,兩個人輪流從其中取走一定的石子,取走最後所有石子的人為贏家,不過得遵循如下規則 1.第一次取不能取完,至少取1顆.2.從第二次開始,每個人取的石子...
LM358使用注意事項
lm358是雙運放組成的運算放大器,可以單電源供電,也可以雙電源供電。常用來做電壓訊號採集的前端電壓跟隨器,同時起到增加輸入阻抗的作用,避免影響被測量的電壓值。lm358當工作在單電源5v供電時,當in 從0 5v輸入,其輸出電壓out只能從0 3.7v,而不是0 5v,也就是說,當in 輸入0 3...