• 个人简介

    $\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