• P1608 路径统计


    Aimee

    很水的题目

    只要把P1144改一下

    需要注意的是这个题有重边,求方案数的话一定要去重!!

    这就涉及到很有趣的问题。

    要想成为顶尖高手
    就要做到滴水不漏
    --橙汁哥

    从这个题我才知道我写的堆优化Dijkstra复杂度有问题

    TLE起飞

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<queue>
    #include<cstring>
    #define int long long
    using namespace std;
    struct qu{
    	int v;
    	int id;
    	friend  bool operator < ( qu x,qu  y){
    		return x.v>y.v;
    	}
    };
    priority_queue <qu>q;
    int p;
    bool num[2001]; 
    int head[2001];
    struct e{
    	int ne;
    	int to;
    	int v;
    } ed[5000001];
    int dis[2001];
    int n,m;
    int u,v,x;
    int cnt[2001];
    int idd[2001][2001];
    qu tool,t;
    void add(int f,int to,int v){
    	p++;
    	ed[p].ne=head[f];
    	ed[p].v=v;
    	ed[p].to=to;
    	head[f]=p;
    	return ;
    }
    void dij(){
    	tool.id=1;
    	tool.v=0;
    	q.push(tool);
    	while(!q.empty()){
    		tool=q.top();
    		q.pop();
    		if(num[tool.id])
    		continue;
    		num[tool.id]=1;
    
    		for(int i=head[tool.id];i;i=ed[i].ne){
    			if(dis[ed[i].to]>dis[tool.id]+ed[i].v){
    				dis[ed[i].to]=dis[tool.id]+ed[i].v;
    				t.id=ed[i].to;
    				t.v=dis[ed[i].to];
    				q.push(t);
    				cnt[ed[i].to]=cnt[tool.id];		
    			}else{
    				if(dis[ed[i].to]==dis[tool.id]+ed[i].v){
    					cnt[ed[i].to]+=cnt[tool.id];
    				}
    			}
    		}
    	}
    	return ;
    }
    signed main(){
    	scanf("%lld%lld",&n,&m);
    	for(int i=1;i<=m;++i){
    		scanf("%lld%lld%lld",&u,&v,&x);
    		if(idd[u][v]){
    			ed[idd[u][v]].v=min(ed[idd[u][v]].v,x);
    		}else{
    			add(u,v,x);
    			idd[u][v]=p;
    		}
    	}
    	memset(dis,0x7f,sizeof(dis));
    	int	maxx=dis[1]; 
    	dis[1]=0;
    	cnt[1]=1;
    	dij();
    	if(dis[n]<maxx){
    		cout<<dis[n]<<" "<<cnt[n];
    	}else{
    		cout<<"No answer";
    	}
    	return 0;
    }
    
  • 相关阅读:
    出队列操作
    出队列操作
    栈和队列7 数据结构和算法29
    KE上传图片
    asp.net常用快捷键
    基于jquery框架实现以下行的向上、向下和删除
    each的用法积累
    JTemplate使用2
    kindeditor API ,kindeditor使用手册,kindeditor函数,kindeditor使用,超级大收集(转载)
    线上帮助
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13888519.html
Copyright © 2020-2023  润新知