Cyh和香穗子(NDK1352)

2021-06-01 07:29:39 字數 1502 閱讀 9350

cyh和香穗子

time limit:10000ms  memory limit:65536k

total submit:14 accepted:8 

description 

話說,cyh和香穗子是好朋友,一天他們在fzsz迷路了….cyh在地點1,香穗子在地點n.由於cyh是土生土長的fzsz人,所以cyh準備去n地給香穗子帶路. 

fzsz是個奇怪的地方,它由n地點組成,並且任意兩個地點a,b滿足要麼a能到b,要麼b能到a,要麼都不能互相到達,一定不存在a和b都能互相到達. 

現在cyh希望快點到達n地 

input 

第一行兩個數n,m 

接下來m行,每行兩個數a,b,表示地點a能達到地點b 

output 

cyh最少經過的地點數

sample input 

4 51 2

2 32 4

1 33 4

sample output 

3hint 

資料範圍: 

n <= 100000,m <= 500000,保正有解 

source 

noidaokan

演算法:圖論

裸的最短路,我會告訴你說題目要求是有向圖結果我開的無向圖麼……

program p3;

const

maxn=100000;

maxm=1000000;

type

atp=record

y,next,dis:longint;

end;

var n,m,tot,head,tail:longint;

first,v:array [0..maxn] of longint;

b:array [0..maxn] of boolean;

map:array [0..maxm] of atp;

que:array [0..maxm] of longint;

procedure init;

var i,x,y:longint;

begin

readln(n,m);

for i:=1 to m do

begin

readln(x,y);

inc(tot);

map[tot].y:=y;

map[tot].next:=first[x];

map[tot].dis:=1;

first[x]:=tot;

end;

end;

procedure spfa;

var t:longint;

begin

fillchar(v,sizeof(v),100);

head:=0;

tail:=1;

que[1]:=1;

v[1]:=0;

b[1]:=true;

while head0 do

begin

if v[que[head]]+map[t].dis

動態規劃 聰明伶俐的香穗子

problem 4 聰明伶俐的香穗子 香穗子遇到難題了.題目是這樣的,乙個序列上有n個整數,現在你要取m個,且這m個數的任意兩個不能相隔的太近,否則這樣會太醜,現在問你最大能得到多大的和 輸入 第一行三個數n,m,k,分別表示n個數,取m個,且m個中的任意兩個位置差要大於等於k 接下來一行,有n個整...

動規遞推 聰明伶俐的香穗子

聰明伶俐的香穗子 香穗子遇到難題了.題目是這樣的,乙個序列上有n個整數,現在你要取m個,且這m個數的任意兩個不能相隔的太近,否則這樣會太醜,現在問你最大能得到多大的和 輸入 第一行三個數n,m,k,分別表示n個數,取m個,且m個中的任意兩個位置差要大於等於k 接下來一行,有n個整數,表示序列上的每個...

P1732 活蹦亂跳的香穗子

香穗子在田野上調蘑菇 她跳啊跳,發現自己很無聊,於是她想了乙個有趣的事情,每個格仔最多只能經過1次,且每個格仔都有其價值 跳的規則是這樣的,香穗子可以向上下左右四個方向跳到相鄰的格仔,並且她只能往價值更高 這裡是嚴格的大於 的格仔跳.香穗子可以從任意的格仔出發,在任意的格仔結束,那麼她最多能跳幾次?...