首先分析題目, 得到兩個性質,
有了這兩個性質, 就可以得出結論:每個節點要麼是出發節點, 要麼是結束節點, 且節點間的配對情況對總流量沒有影響 .
於是嘗試以下構造方法 先構造出每個節點與父親節點連邊以滿足題意 的方案, 將 1
1 作為根,從底向頂處理,
兒子節點的權值通過向父親節點傳遞訊息的方式消為 0
0, 因為資料保證有解, 所以消到根後根的權值會變為 00 .
在往上進行 「消元」 的過程中記錄每個節點流入和流出的訊息流量,
最後將每個節點分成兩類, 一類是流出的節點, 另一類是流入的節點, 再將節點按編號從小到大排序, 按順序兩兩配對即可得到最優解 .
#include
#define reg register
intread()
while
(isdigit
(c)) s = s*
10+ c-
'0', c =
getchar()
;return s * flag;
}const
int maxn =
1000006
;int n;
int t1;
int t2;
int num0;
int w[maxn]
;int in[maxn]
;int out[maxn]
;int head[maxn]
;int ans_1[maxn]
;int ans_2[maxn]
;struct edge edge[maxn <<1]
;void
add(
int from,
int to)
; head[from]
= num0;
}void
dfs(
int k,
int fa)
}int
main()
dfs(1,
0);for
(reg int i =
1; i <= n; i ++)if
(in[i]
> out[i]
)else
if(in[i]
< out[i]
)printf
("%d\n"
, t1)
;for
(reg int i =
1; i <= t2; i ++
)printf
("%d %d\n"
, ans_1[i]
, ans_2[i]);
return0;
}
Android訊息傳遞之元件間傳遞訊息
前言 上篇學習總結了android通過handler訊息機制實現了工作執行緒與ui執行緒之間的通訊,今天來學習一下如何實現元件之間的通訊。本文依然是為學習eventbus做鋪墊,有對比才能進步,今天主要介紹在eventbus出現之前的實現方式,通過intent方式這裡不做介紹。需求場景 方式一 通過...
mfc 訊息傳遞
訊息分類 windows的訊息都是以wm 為名,wm 的意思是 windows message mfc把訊息分為三大類 命令訊息 wm command 命令訊息意味著 使用者命令程式做某些操作 凡是ui物件產生的訊息都是這種命令訊息,可能來自選單或加速鍵或工具欄按鈕,並且都以wm command呈現...
Intent 訊息傳遞
android為了遮蔽程序的概念,利用不同的元件 activity service 來表示程序之間的通訊!元件間通訊的核心機制是intent,通過intent可以開啟乙個activity或service,不論這個activity或service是屬於當前應用還是其它應用的!一 intent概念 in...