hoblovski吧 关注:27贴子:864

压行真是爽,29行Dijkstra.

取消只看楼主收藏回复

比不上Seter28行写完NOI海拔啊,Pascal就这样子...还有压行也挺蛋疼的这次是例外我的代码风格没这么蛋疼.算法 :: ZKW线段树作为优先队列的使用,速度比堆Dijkstra稍微慢一点点(2秒和2010ms的区别). 不过代码短很多呢,主要是为了写Dijkstra的费用流准备.
简直不能看,还有可能有错这JB压行根本不能调试
{$INLINE_ON}_program_Dijkstra_1;
type_tnode=record_n,w,next:longint;_end;
const_maxn=100017;_maxm=1000017;_maxint=longint($3f3f3f3f);
var_g,d:array[0..maxn]_of_longint;
____v:array[0..maxn]_of_boolean;
____t:array[0..maxn*4]_of_longint;
____mem:array[0..maxm]_of_tnode;
____n,m,memsize,zkw:longint;
function_min(i,j:longint):longint;_inline;_begin_if_i<j_then_exit(i)_else_exit(j);__end;
function_max(i,j:longint):longint;_inline;_begin_if_i>j_then_exit(i)_else_exit(j);__end;
procedure_insnbs(u,v,iw:longint);_inline;_begin_inc(memsize);_with_mem[memsize]_do_begin
________n:=v;_w:=iw;_next:=g[u];_end;_g[u]:=memsize;_end;
procedure_edit(i,j:longint);_inline;____________________________________________________begin
inc(i,zkw);_t[i]:=j;_while_i>0_do_begin_j:=i>>1;_t[j]:=min(t[i],t[i_xor_1]);_i:=j;_end;_end;
procedure_sssp(u:longint);
var_i,j,k,t1:longint;
begin
zkw:=1;_while_zkw<n+2_do_zkw:=zkw<<1;_fillchar(t,sizeof(t),0);_edit(u,0);_for_i:=1_to_n_do_begin
________j:=1;_while_j<zkw_do_begin_k:=j<<1;_j:=k+byte(t[k+1]<t[k]);_end;_d[j-zkw]:=t[j];
________dec(j,zkw);_edit(j,maxint);v[j]:=true;_t1:=g[j];_while_t1<>0_do_begin
________________if_(t[mem[t1].n+zkw]>t[j]+mem[t1].w)_then_edit(mem[t1].n,d[j]+mem[t1].w);_t1:=mem[t1].next;
________end;
end;_end;_procedure_init;
var_i,j,k,u,v,w:longint;
begin
fillchar(g,sizeof(g),0);_memsize:=0;_readln(n,m);_for_i:=1_to_m_do_begin_readln(u,v,w);_insnbs(u,v,w);_end;
end;_begin
init;_sssp(1);
end.


1楼2014-07-13 16:13回复
    18行恭喜


    2楼2014-07-13 16:21
    回复
      随机图的连通概率
      以为是论文题,结果发现POJ3156差不多只不过是期望连通边数.
      然后
      最小表示法DP
      ...................................


      3楼2014-07-13 17:12
      回复
        好不容易找了到费用流题想用Dijkstra的费用流
        好不容易自己建好模之后...
        等等好像是动态加边?
        哦艹Dijkstra怎么搞?又要回到EKSPFA(和Dijkstra一样基于重赋权的ZKW也会跪)


        4楼2014-07-13 19:38
        收起回复
          picksBlog有THUSC某题算法
          看来做题之前要看看出题人的Blog


          5楼2014-07-13 20:58
          回复
            满屏的岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风
            岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风岛风


            6楼2014-07-14 00:17
            回复
              我说怎么卡不掉SPFA
              原来是题目的特性,当d[trm]>0就break
              于是每次读入完就return 0了


              7楼2014-07-14 11:21
              回复
                终于卡掉SPFA了


                8楼2014-07-14 11:33
                回复
                  SPFA根本不用卡
                  随机数据就跪给大Dijkstra了


                  9楼2014-07-14 11:36
                  回复
                    50000,324750 完全随机图 准许重边自环 费用流
                    SPFA跪成渣!!!
                    上下分别是Dijkstra/SPFA


                    10楼2014-07-14 11:41
                    回复
                      选手程序在某测试点上的运行时间仅比时限多 0.005 秒,算不算超时? 算


                      11楼2014-07-14 13:14
                      回复
                        .....
                        手贱点开Status
                        R1 9xx B
                        瞬间不想写了


                        12楼2014-07-14 14:53
                        回复
                          呵呵呵暴0真逗比
                          果然线性规划的思想是不会让我用志愿者招募水过去的


                          13楼2014-07-14 15:46
                          回复
                            又上不去Google了
                            来作个死
                            ......不知道霓虹那边前几天有没有墙シシエー(T)ビ
                            不管你们墙不强我反正是羌了


                            14楼2014-07-14 17:00
                            收起回复
                              看到一个100行的标程
                              不爽
                              直接压成60行
                              幸好我不用C++不然要学Seter


                              15楼2014-07-14 20:00
                              回复