COGS USACO Mar07 奶牛交通

2021-08-09 08:47:12 字數 2125 閱讀 2401

[usaco mar07] 奶牛交通

農場中,由於奶牛數量的迅速增長,通往奶牛宿舍的道路也出現了嚴重的交通擁堵問題.fj打算找出最忙碌的道路來重點整治.

這個牧區包括乙個由m (1 ≤ m ≤ 50,000)條單行道路(有向)組成的網路,以及 n (1 ≤ n ≤ 5,000)個交叉路口(編號為1..n),每一條道路連線兩個不同的交叉路口.奶牛宿舍位於第n個路口.每一條道路都由編號較小的路口通向編號較大的路 口.這樣就可以避免網路中出現環.顯而易見,所有道路都通向奶牛宿舍.而兩個交叉路口可能由不止一條邊連線.

在準備睡覺的時候,所有奶牛都從他們各自所在的交叉路口走向奶牛宿舍,奶牛只會在入度為0的路口,且所有入度為0的路口都會有奶牛.

幫助fj找出最忙碌的道路,即計算所有路徑中通過某條道路的最大次數.答案保證可以用32位整數儲存.

輸入格式:

輸出格式:

樣例輸入:

7 7

1 33 4

3 54 6

2 35 6

6 7

樣例輸出

4
樣例說明:

1   4

\ / \

3 6 -- 7

/ \ /

2 5

通向奶牛宿舍的所有路徑:

1 3 4 6 7

1 3 5 6 7

2 3 4 6 7

2 3 5 6 7

通過某一條路的次數就是通過某一條路兩端點路徑條數的乘積

f[i]代表從乙個入度為0的點到f[i]的路徑條數

g[i]代表從n到i點的路徑條數

f[i]=sum 存在邊(j,i)

g[i]=sum 存在邊(i,j) 

f[k]=1 k為入度為0的點

g[n]=1;

ans=max 存在邊(a,b) 

1 #include 2 #include 3

4const

int maxn=5010;5

6int

n,m;78

intf[maxn],g[maxn];910

struct

node

14 node(int to,int

next):to(to),next(next) {}

15};

16 node e[maxn*10],r[maxn*10

];17

18int

head[maxn],head[maxn],tot;

1920 inline void read(int&x)

2627 inline int max(int a,int b)

2829 inline void add(int x,int

y) 35

36int

hh()

46 g[n]=1;47

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

48if(!head[i]) f[i]=1;49

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

51for(register int j=head[i];j;j=e[j].next)

52 f[e[j].to]+=f[i];

5354

for(register int i=n;i>=1;--i)

55for(register int j=head[i];j;j=r[j].next)

56 g[r[j].to]+=g[i];

5758

int ans=-1;59

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

60for(register int j=head[i];j;j=e[j].next)

61 ans=max(ans,f[i]*g[e[j].to]);

62 printf("

%d\n

",ans);

63return0;

64}6566

int sb=hh();

67int main(int argc,char**argv)

**

字元0 數字0和 0

binoct dechex 縮寫 字元 解釋0000 000000 00nut null 空字元00110000 6048300 字元0ascii碼值 0 表示空字元,空字元就是平時所說的 0 字元 0 ascii碼值為 48,如 012 字串中的 0 表示字元 0 數字 0,所說的數字 0,就是平...

C語言 0 和0和 0

共同點 都是字元 不同點 0 對應的ascii碼是0,是ascii碼表中的第乙個字元,即空字元 判斷乙個字串是否結束的標誌就是看是否遇到 0 0 對應的ascii碼是48,48對應的十六進製制數就是0x30。0 是字串常量,字串常量是由一對雙引號括起的字串行。字串常量可以含乙個或多個字元。0 是字元...

徹底搞定0x0d和0x0a

我只在arm linux c和vc 下做了試驗,請大家在接觸其它語言環境下,小心推廣,不行就自己動手做試驗,最可靠。在arm linux c和vc 下回車換行的意義如下。回車 cr ascii碼 r 十六進製制,0x0d,回車的作用只是移動游標至該行的起始位置 換行 lf ascii碼 n 十六進製...