Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:不明白为什么选G++ 会RE 而C++就AC了In Reply To:不明白为什么选G++ 会RE 而C++就AC了 Posted by:laujoon at 2022-02-16 18:44:52 > #include<cstdio> > #include<vector> > #include<iostream> > #include<cstring> > using namespace std; > const int N = 1009 ; > vector<int> G[N]; > double mp[N][N],dis[N],co[N][N]; > bool vis[N]; > bool flag = false ; > void f(int n){ > int h = n ; > while(h--) > { > int max_p ; > double max_d = 0 ; > for(int i = 1 ; i <= n ; ++ i) > { > if(!vis[i] && dis[i] > max_d ){ > max_d = dis[max_p = i]; > } > } > vis[max_p] = true ; > int u = max_p ; > for(int i = 0 ; i< G[u].size() ;++ i ){ > int v = G[u][i]; > if(vis[v]) continue; > dis[v] = max(dis[v],(dis[u]-co[u][v])*mp[u][v]); > } > } > return ; > } > void g (int n){ > for(int i = 1 ; i <= n ; ++ i){ > for(int j = 1 ; j <= n ; ++ j) > { > if(i==j) continue ; > if(dis[j] < (dis[i]-co[i][j])*mp[i][j] ) > { > flag = true ; > return ; > } > } > } > return ; > } > int main (){ > int n,m,s; > double v ; > scanf("%d%d%d%lf",&n,&m,&s,&v); > for(int i = 1 ; i <= m ; ++ i){ > int a,b; > double e1,c1,e2,c2; > scanf("%d%d%lf%lf%lf%lf",&a,&b,&e1,&c1,&e2,&c2); > mp[a][b] = e1,mp[b][a] = e2; > co[a][b] = c1,co[b][a] = c2; > G[a].push_back(b),G[b].push_back(a); > } > dis[s] = v ; > //vis[s] = true ; > f(n); > g(n); > if(flag) cout<<"YES"<<endl; > else cout<<"NO"<<endl; > return 0 ; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator