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;
    }
    
  • 相关阅读:
    连接数据库及出现System.AccessViolationException错误的解决方法
    WCF REST 工作总结
    jquery easyui 扩展验证
    正则表达式语法
    SQL select语句执行顺序
    添加头文件afxwin.h后引起异常的解决办法
    imagej基本操作
    医学图像处理(一)
    灰度图像的自动阈值分割(Otsu 法)
    关于glog使用中遇到的问题
  • 原文地址:https://www.cnblogs.com/Lance1ot/p/8659465.html
Copyright © 2011-2022 走看看