zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    java数据库连接池
    TCP长连接服务的Java实现
    一种简单JDBC数据库连接池的实现
    ProFtpd快速指南
    vsftpd安装
    IIS启动失败【发生意外错误 0x8ffe2740】解决办法
    eclipse+myeclipse+tomcat配置web开发
    数据库连接池技术浅析
    论JSP数据库连接池的必要性
    ProFTPD使用
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13888519.html
Copyright © 2011-2022 走看看