Anonymous匿名者 @ 2019-07-23 20:41:27
大佬看看,我快疯了 (殡仪馆已经联系好了)
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int read()
{
int x=0,f=1;char c=getchar();
while(!isdigit(c)){if(c=='-')f=-1;c=getchar();};
while(isdigit(c)){x=x*10+c-'0';c=getchar();};
return x*f;
}
typedef pair<int,int> pii;
priority_queue <pii,vector<pii>,greater<pii> > q;
const int maxn=10005,maxm=50005;
const int inf=0x3f3f3f3f;
struct edge{
long long v,w,next;
}e[maxm];
int cnt,head[maxn];
int n,m,b;
long long f[maxn],ff[maxn];
long long ans=-1;
int dis[maxn];
bool vis[maxn];
int maxx=-1;
void add(int u,int v,int w)
{
e[++cnt].v=v;
e[cnt].w=w;
e[cnt].next=head[u];
head[u]=cnt;
}
bool judge(int money)
{
if(money<f[1]||money<f[n])
return 0;
memset(dis,inf,sizeof(dis));
memset(vis,0,sizeof(vis));
dis[1]=0;
q.push(make_pair(0,1));
while(!q.empty())
{
int u=q.top().second;
q.pop();
if(vis[u]) continue;
vis[u]=1;
for(int k=head[u];k;k=e[k].next)
{
int t=e[k].v;
if(f[t]<=money&&dis[u]+e[k].w<dis[t])
{
dis[t]=dis[u]+e[k].w;
q.push(make_pair(dis[t],t));
}
}
}
//printf("shat %d %d\n",money,dis[n]);
//printf("fff money=%d f[1]=%d vis[1]=%d f[n]=%d vis[n]=%d\n",money,f[1],vis[1],f[n],vis[n]);
if(dis[n]<=b)
{
// printf("%d ",dis[n]);
return 1;
}
else return 0;
}
void readdata()
{
n=read(),m=read(),b=read();
for(int i=1;i<=n;i++)
{
f[i]=read();
ff[i]=f[i];
}
maxx=max(f[1],f[n]);
sort(ff+1,ff+n+1);
/*for(int i=1;i<=n;i++)
printf("%d ",ff[i]);
printf("hello\n");*/
for(int i=1;i<=n;i++)
{
int a,b,c;
a=read(),b=read(),c=read();
if(a==b) continue;
add(a,b,c);
add(b,a,c);
}
long long l=ff[1],r=ff[n];
while(l<=r)
{
long long mid=l+r>>1;
//printf("on no %d\n",mid);
if(judge(mid))
{
r=mid-1;
ans=mid;
// printf("%d\n",ans);
}
else l=mid+1;
}
// if(ans==970023169)
// printf("723502837");
/* else*/ if(ans!=-1)
printf("%lld",ans);
else printf("AFK");
}
int main()
{
freopen("sss.in","r",stdin);
//memset(head,-1,sizeof(head));
readdata();
return 0;
}
by Gary818 @ 2019-07-23 20:51:56
@Anonymous匿名者
这题不是裸的SPFA咩
by Anonymous匿名者 @ 2019-07-23 21:01:49
@海阔天空818 我用的Dijk
但是应该没问题啊
你看一下出了什么毛病