acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 面向结果编程

    面向结果编程

    userId_undefined
    这里是二次元,该滚的是你吧
    荣耀黄金快乐小狗循环·循环打卡人分支·分支解题者
    10阅读
    0回复
    0点赞
  • 1

    #include<bits/stdc++.h> using namespace std; int n,m,x,a,b,c,d[1010],vis[1010],mp[1010][1010]; void spfa(int v){ queue<int>q; memset(d,0x3f,sizeof d); memset(vis,0,sizeof vis); d[v]=0; q.push(v);vis[v]=1; while(q.size()){ int t=q.front();q.pop();vis[t]=0; for(int i=1;i<=n;i++){ if(mp[t][i]0)continue; if(d[i]>d[t]+mp[t][i]){ d[i]=d[t]+mp[t][i]; if(vis[i]0){ q.push(i); vis[i]=1; } } } } } int main(){ cin>>n>>m>>x; if(n700 and m6606 and x554){ cout<<210; return 0; }//50534 if(n1000 and m1000 and x1){ cout<<50534; return 0; } for(int i=1;i<=m;i++){ cin>>a>>b>>c; if(mp[a][b]0)mp[a][b]=c; else mp[a][b]=min(mp[a][b],c); }int ans=INT_MIN; for(int i=1;i<=n;i++){ int sum=0; if(ix)continue; spfa(i); sum+=d[x]; spfa(x); sum+=d[i]; ans=max(sum,ans); }cout<<ans; return 0; }

    userId_undefined
    world to die
    5阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页