zoukankan      html  css  js  c++  java
  • 3259Wormholes

    Bellman-Ford算法--从边的角度出发

    SPFA算法--从顶点出发,用队列优化,用一个count记录这个顶点压入队列多少次来决定他是不是存在负权

    Bellman-ford算法浪费了许多时间做无必要的松弛SPFA算法用队列进行了优化,效果十分显著,高效难以想象,Dijkstra算法无法判断负权回路,所以遇到负权还是要用Bellman-Ford,或者是SPFA

     

    2,电脑真的是可以拿来修身养性的啊,它就是一小孩,坑爹啊,很直白,就是错了也很直白,所以打代码时得有心理准备,不会一次性通过的,如果通过了,一般都是水题来的

    3.模拟题目,也许这种思考方式不行,我们可以换种思考方式,但要时刻提醒自己,感觉这样不对劲,都要思考为什么不对。

    4.输出没有达到自己想要的结果,那就是我们错了,电脑是不会出错的

    5.这道题目还没有通过

    #include "iostream"
    #include "string.h"
    #include "queue"
    using namespace std;
    struct {
      int s,e,t;
    }list[1000];
    int main(){
      int Case,n,m,w,i,j;
      int time[1000],set[1000],set1[1000];
      queue<int> Q;
      memset(time,0,sizeof(time));
      memset(set,0,sizeof(set));
      cin>>Case;
      while(Case--){
        cin>>n>>m>>w;
    
        for(i=0;i<m;i++){
          int pos=(i<<1);
          cin>>list[pos].s>>list[pos].e>>list[pos].t;
          list[pos+1].s=list[pos].e;
          list[pos+1].e=list[pos].s;
          list[pos+1].t=list[pos+1].t;
        }
        for(i=2*m;i<2*m+w;i++){
          cin>>list[i].s>>list[i].e>>list[i].t;
          list[i].t=0-list[i].t;
        }
    
       for(i=1;i<=n;i++){
         memset(time,0,sizeof(time));
         memset(set1,0,sizeof(time));
         time[i]=0;
         set[i]=1;
         Q.push(i);
         while(!Q.empty()){
           int flag=Q.front();
           Q.pop();
           set[flag]=0;
           for(j=0;j<2*m+w;j++){
             if(time[list[j].e]>time[list[j].s]+list[j].t&&list[j].s==flag){
               time[list[j].e]=time[list[j].s]+list[j].t;
               if(!set[list[j].e]){
                  Q.push(list[j].e);
                  set[list[j].e]=1;
                  set1[list[j].e]=1;
                }
             }
             for(int k=0;k<2*m+w;k++)
              if(list[k].e==i&&set1[list[k].s]){
               if(time[list[k].s]+list[k].t<0){cout<<"YES"<<endl;goto l1;}
            }
           }
         }
       }
       cout<<"NO"<<endl;
     l1:;
    }
    }
  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/dowson/p/3250843.html
Copyright © 2011-2022 走看看