題目:
題解:
有一點像數字三角形的某個加強版
spfa
開乙個二維陣列dis[i][j]表示i號節點有無長度為j的路徑
spfa的取min改為更新dis陣列
注意:
一開始沒處理負邊權,wa了兩組
處理負邊時每次+60,tle了好多組
那麼那些負邊權的點在第一次是怎麼過的呢【笑】
codevs的資料真是坑的一筆啊
處理負邊的時候,加乙個很大的60的倍數就可以啦
**:
#include
#include
#include
#include
#include
const int p=60;
const int n=7000+50,m=9000+500;
using namespace std;
int first[n],next[m<<1],n,m,a,b,c,tot;
bool inq[n][60];
bool dis[n][60];
struct edgee[m<<1];
struct wkw;
queueq;
void build(int f,int t,int val);
next[tot]=first[f];
first[f]=tot;
return ;
}void spfa());
dis[1][0]=1;
inq[1][0]=1;
while(!q.empty()));
inq[t][tmp]=1;}}
return ;
}int main()
//cout<<"hah";
spfa();
for(int i=0;i<=59;i++)
}printf("60");
return
0;}
codevs1961 躲避大龍
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解你早上起來,慢悠悠地來到學校門口,發現已經是八點整了!這句話裡有乙個比較重要的條件 學校共有n個地點,編號為1 n,其中1號為學校門口 也就是你現在所處的位置 2號為你的教室 也就是你的目的地 這些地點之間有m條雙向...
躲避大龍(codevs 1961)
題目描述 description 你早上起來,慢悠悠地來到學校門口,發現已經是八點整了!這句話裡有乙個比較重要的條件 學校共有n個地點,編號為1 n,其中1號為學校門口 也就是你現在所處的位置 2號為你的教室 也就是你的目的地 這些地點之間有m條雙向道路,對於第i條道路,為了不引起值周隊老師的懷疑,...
codevs1961 躲避大龍 spfa
題目描述 description 你早上起來,慢悠悠地來到學校門口,發現已經是八點整了!這句話裡有乙個比較重要的條件 學校共有n個地點,編號為1 n,其中1號為學校門口 也就是你現在所處的位置 2號為你的教室 也就是你的目的地 這些地點之間有m條雙向道路,對於第i條道路,為了不引起值周隊老師的懷疑,...