zoukankan      html  css  js  c++  java
  • P1462 通往奥格瑞玛的道路

    题目

    真可以,我昨天写的全不对。今天写的一次ac

    就是二分答案+spfa

    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<algorithm>
    using namespace std;
    int n,m;
    long long b;
    long long price[11000];
    struct node
    {
    	int point;
    	int nxt;
    	long long weight;
    };
    node line[101000];
    int head[10100],tail;
    bool inque[11000];
    queue<int>q;
    long long dis[11000];
    bool check(long long val)
    {
    	if(price[1]>val)
    		return true;
    	for(int i=1;i<=n;i++)
    		dis[i]=1844674407370955161;
    	dis[1]=0;
    	q.push(1);
    	inque[1]=true;
    	int pass;
    	while(!q.empty())
    	{
    		pass=q.front();
    		q.pop();
    		inque[pass]=false;
    		for(int i=head[pass];i;i=line[i].nxt)
    			if(dis[line[i].point]>dis[pass]+line[i].weight&&price[line[i].point]<=val)
    			{
    				dis[line[i].point]=dis[pass]+line[i].weight;
    				if(!inque[line[i].point])
    				{
    					inque[line[i].point]=true;
    					q.push(line[i].point);
    				}
    			}
    	}
    	if(dis[n]==1844674407370955161||dis[n]>b)
    		return true;
    	return false;
    }
    void add(int a,int b,long long c)
    {
    	line[++tail].point=b;
    	line[tail].weight=c;
    	line[tail].nxt=head[a];
    	head[a]=tail;
    	return ;
    }
    int main()
    {
    	scanf("%d%d%lld",&n,&m,&b);
    	long long l=0,r=0;
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%lld",&price[i]);
    		r=max(r,price[i]);
    	}
    	int a,d;
    	long long c;
    	for(int i=1;i<=m;i++)
    	{
    		//scanf("%d%d%lld",&a,&d,&c);
    		cin>>a>>d>>c;//不知道为什么scanf不对
    		add(a,d,c);
    		add(d,a,c);
    	}
    	if(check(r+1))
    	{
    		printf("AFK");
    		return 0;
    	}
    	while(l<r)
    	{
    		long long mid=(l+r)>>1;
    		if(check(mid))
    			l=mid+1;
    		else
    			r=mid;
    	}
    	printf("%lld",l);
    	return 0;
    }
    
  • 相关阅读:
    ES6/ES2015核心内容 import export
    JavaScript 标准参考教程(alpha) 阮一峰
    NPM 学习笔记整理
    (尚026)Vue_案例_动态初始化显示(尚025)
    (尚025)Vue_案例_静态组件
    (尚024)Vue_案例_交互删除
    (尚023)Vue_案例_交互添加
    (尚022)Vue案例_初始化显示(十分详细!!!)
    (尚021)Vue_eslint编码规范检查
    (尚020)Vue打包发布项目
  • 原文地址:https://www.cnblogs.com/Lance1ot/p/8659465.html
Copyright © 2011-2022 走看看