• POJ1797 Heavy Transportation(SPFA)


    题目要求1到n点的最大容量的增广路。

    听说是最短路求的,然后乱搞就A了。。

    大概能从Bellman-Ford的思想,dk[u]表示从源点出发经过最多k条边到达u点的最短路,上理解正确性。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<queue>
     4 #include<algorithm>
     5 using namespace std;
     6 #define INF (1<<30)
     7 #define MAXN 1111
     8 #define MAXM 1000111
     9 
    10 struct Edge{
    11     int v,cost,next;
    12 }edge[MAXM];
    13 int head[MAXN],NE;
    14 void addEdge(int a,int b,int c){
    15     edge[NE].v=b; edge[NE].cost=c; edge[NE].next=head[a];
    16     head[a]=NE++;
    17 }
    18 
    19 int d[MAXN];
    20 int n,m;
    21 void SPFA(){
    22     bool vis[MAXN]={1,1};
    23     for(int i=1; i<=n; ++i) d[i]=0;
    24     d[1]=INF;
    25     queue<int> que;
    26     que.push(1);
    27     while(!que.empty()){
    28         int u=que.front(); que.pop();
    29         for(int i=head[u]; i!=-1; i=edge[i].next){
    30             int v=edge[i].v;
    31             if(d[v]<min(d[u],edge[i].cost)){
    32                 d[v]=min(d[u],edge[i].cost);
    33                 if(!vis[v]){
    34                     vis[v]=1;
    35                     que.push(v);
    36                 }
    37             }
    38         }
    39         vis[u]=0;
    40     }
    41 }
    42 int main(){
    43     int t,a,b,c;
    44     scanf("%d",&t);
    45     for(int cse=1; cse<=t; ++cse){
    46         scanf("%d%d",&n,&m);
    47         NE=0;
    48         memset(head,-1,sizeof(head));
    49         while(m--){
    50             scanf("%d%d%d",&a,&b,&c);
    51             addEdge(a,b,c);
    52             addEdge(b,a,c);
    53         }
    54         SPFA();
    55         printf("Scenario #%d:
    ",cse);
    56         printf("%d
    
    ",d[n]);
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    jquery 使用on方法给元素绑定事件
    bootstrap 学习笔记(部分)
    ajax 调用 webService
    ASP.NET 上传文件
    SQL 表 数据备份
    在控制台程序中,添加config文件
    webConfig的使用
    C# 下载文件的心得
    JS将页面中表格,导出到Excel中(IE中)
    Yahoo 军规(部分)
  • 原文地址:https://www.cnblogs.com/WABoss/p/5093939.html
Copyright © 2020-2023  润新知