zoukankan      html  css  js  c++  java
  • 洛谷P1339 [USACO09OCT]热浪Heat Wave

    思路:裸SPFA过一遍(建议使用邻接链表存储),无向图,无向图,无向图,重要的事情要说三遍!!!蜜汁RE是什么鬼????第九个点数组开到20K,第十个点数组开到30K才AC。或许我代码写的有bug?(逃

    CODE:

     1 #include<iostream>
     2 #include<queue>
     3 using namespace std;
     4 queue<int>q;
     5 struct Edge{
     6     int pre,to,w;
     7 }edge[30000];
     8 int head[30000];
     9 bool if_q[30000];
    10 int dis[30000];
    11 int T, C, Ts, Te,Rs, Re,Ci;
    12 int num_edge;
    13 inline void add_edge(int from,int to,int w)
    14 {
    15     edge[++num_edge].pre=head[from];
    16     edge[num_edge].to=to;
    17     edge[num_edge].w=w;
    18     head[from]=num_edge;
    19 }
    20 inline void spfa(int u)
    21 {
    22      q.push(u);
    23      if_q[u]=true;
    24      while(!q.empty())
    25      {
    26          u=q.front();
    27          for(int i=head[u]; i!=0; i=edge[i].pre)
    28          {
    29              int v=edge[i].to;
    30              if(dis[u]+edge[i].w<dis[v])
    31              {
    32                  dis[v]=dis[u]+edge[i].w;
    33                  if_q[v]=true;
    34                  q.push(v);
    35              }
    36          }
    37          if_q[u]=false;
    38          q.pop();
    39       }
    40 }
    41 int main()
    42 {
    43     for(int i=0;i<30000;i++)
    44         dis[i]=0x7fffffff;
    45     cin>>T>>C>>Ts>>Te;
    46     for(int i=0;i<C;i++)
    47     {
    48         cin>>Rs>>Re>>Ci;
    49         add_edge(Rs,Re,Ci);
    50         add_edge(Re,Rs,Ci);
    51     }
    52     dis[Ts]=0;
    53     spfa(Ts);
    54     cout<<dis[Te];
    55     return 0;
    56 }

    注:就是模板题,STL大法好,哈哈哈。

  • 相关阅读:
    struts2的execAndWait拦截器
    听说百度网盘可以这样下载文件
    文件下载
    struts2文件上传
    注解实现struts2零配置
    struts2.properties
    拦截器
    curl+个人证书(又叫客户端证书)访问https站点
    Wireshark入门与进阶系列(一)
    Wireshark入门与进阶系列(二)
  • 原文地址:https://www.cnblogs.com/TheRoadToAu/p/6717855.html
Copyright © 2011-2022 走看看