-
个人简介
$\nexists x \ (\ \phi (\ x\ ) \Longrightarrow \ \neg \phi (\ x\ )\ )$
#include<bits/stdc++.h> #define MOST_NODES 100 + 1 #define MOST_EdgeS 100 + 1 #define _SET_VEC( _VEC, _VAL) std::memset( _VEC, _VAL, sizeof _VEC) struct Node { int n,l; friend bool operator>(const Node& l, const Node& r) {return l.l > r.l;} }; struct Edge { int f,t,w; }; std::vector<Edge> e[MOST_NODES]; std::priority_queue< Node, std::vector< Node > , std::greater< Node > > que; int dis[MOST_NODES]; bool vis[MOST_NODES]; void dijkstra(int start) { _SET_VEC( dis, 0x3f3f), _SET_VEC( vis , 0); dis[start] = 0; que.push({start, 0}); int m = 0; while(que.size()) { int u = que.top().n; que.pop(); m = std::max(m,u); if(vis[u]) continue; vis[u] = 1; for(const auto& ed: e[u]) { int t = ed.t, w = ed.w; if(dis[u] + w < dis[t]) { dis[t] = dis[u] + w; que.push({t,dis[t]}); } } return; } int main() { int n,m std::scanf("%d%d",&n,&m); while(m--) { int f,t,w; std::scanf("%d%d%d",&f,&t,&w); //std::printf("%d -> %d : %d\n",f,t,w); e[f].push_back({f,t,w}); } dijkstra(1); return 0; }
let genRoad = () => {let random = (l,r) => {return Math.floor(Math.random() * (r - l)) + l},e = random(1,100), a = `${e}`,y = 0;a += '\n';for(let i = 1;i <= e;i++){for(let j = i;j <= e;j++){let w = random(e - i,(e - i) * 100);a += `${i} ${j} ${w}`;a += '\n';y++;}};console.log(a)}
-
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework.
题目标签
- 系统测试
- 1