五校聯考6day2 san

2021-09-10 08:53:03 字數 1741 閱讀 8264

description

小明經常去n 個地點,其中有些地點之間有直接的無向道路(共m 條這樣的道路),可以直接互相到達,這些道路的長短不一。由於小明對這些道路都很熟悉,無論起點和終點在**,總能走最短路。小明有嚴重的強迫症,認為奇數很不和諧,如果他某一天從乙個地點去另乙個地點走過的路程是奇數,就會很不爽,但他又不想白白多走路,所以遇到最短路長度是奇數的情況就只能忍了。

如果從某個地點a 到另乙個地點b 的最短路徑長度為奇數,則稱這條最短路徑為「不和諧最短路」。如果一條不和諧最短路上包含地點c,則稱它為「經過c 的不和諧最短路」。現在請你程式設計求出對於每個地點,經過它的不同的不和諧最短路數量。兩條最短路不同,當且僅當它們途徑的地點的序列不同。

input

第一行兩個正整數n;m,含義見題面。

接下來m 行,每行三個正整數ai;bi;li,表示一條無向道路的兩端和長度。

output

n 行每行乙個整數,第i 行表示經過第i 個點的不同的不和諧最短路條數。

sample input

4 41 4 1

1 2 1

3 4 100

2 3 2

sample output64

22樣例說明

長度為奇數的最短路有:1 → 2; 1 → 2 → 3; 1 → 4; 2 → 1; 3 → 2 → 1; 4 → 1。

這些路徑中四個點的經過次數分別為6, 4, 2, 2。

其它一些路,如1 → 4 → 3 不是最短路,2 → 3 是最短路但長度為2,是偶數。這些路都不計入答案。

data constraint

對於50% 的資料,n ≤ 100;

對於全部資料,n ≤ 1000;m ≤ 3000,每條路的長度不超過1000。

保證圖連通,無自環重邊。..

...分析

題目中的圖是一般圖,結構複雜沒有規律。考慮列舉起點並計算單源最短路,保留所有最短路中的邊(有向),原圖就變成了乙個 dag,可以很方便地在上面進行拓撲排序,dp 等。再考慮長度為奇數的最短路,從乙個點斷開,一定是一邊長度為奇數,另一邊長度為偶數。因此可以在 dag 上 dp 計算從起點到達每個點的奇偶最短路徑分別有幾條,再逆序 dp 計算從每個點出發的奇偶最短路徑條數,在後面的 dp 過程中順便統計答案。這樣對每個起點算一遍。

複雜度 o(nm log n)。..

...程式:

#include#include#include#includeusing namespace std;

int ans[2000],d[2000],head[2000],pre[2000],n,m,cnt=1;

bool f[2000];

queueq;

struct node

edge[10000];

void add(int x,int y,int z)

void dfs(int x,int y)

for (int i=head[x];i;i=edge[i].next) }

}void spfa(int x)

}} q.pop();

} dfs(x,0);

}int main()

for (int i=1;i<=n;i++)

spfa(i);

for (int i=1;i<=n;i++)

printf("%d\n",ans[i]);

return 0;

}

4246 五校聯考6day2 san

小明經常去n 個地點,其中有些地點之間有直接的無向道路 共m 條這樣的道路 可以直接互相到達,這些道路的長短不一。由於小明對這些道路都很熟悉,無論起點和終點在 總能走最短路。小明有嚴重的強迫症,認為奇數很不和諧,如果他某一天從乙個地點去另乙個地點走過的路程是奇數,就會很不爽,但他又不想白白多走路,所...

五校聯考6day2 er

description 小明在業餘時間喜歡打電子遊戲,不是星際和魔獸這些,是賽爾號一類的遊戲。最近小明在玩一款新出的遊戲,叫做 小明覺得遊戲裡自己的裝備太垃圾了,每次都被大神虐,一怒之下充了 元準備強化裝備。這個遊戲中用於強化裝備的道具叫做強化符文。有以下3 種 賦值強化符文,對某個裝備使用這個符文...

4244 五校聯考6day2 yi

小明是 星際旅遊公司的員工,負責安排飛船,有n 艘飛船由他管理,每艘飛船能容納的人數都不同。今天小明被要求為乙個去銻星的旅遊團安排往返的飛船,旅遊團有m人,小明希望用最少的飛船完成任務。但不是所有的飛船都能用的,地球和銻星距離k镾 此單位由銻星人發明,後在星際旅遊業界廣泛使用 而每一艘飛船加滿燃料後...