sdut 2498【aoe 网上的关键路径】
发布日期:2021-05-09 04:14:01 浏览次数:10 分类:博客文章

本文共 1290 字,大约阅读时间需要 4 分钟。

代码超时怎么破:

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 int mapx[10000][10000],ve[10001],vl[10001],h[10001],m,k; 10 stack
zhan; 11 queue
e; 12 queue
l; 13 void tuopu(); 14 void gengxin(); 15 int main() 16 { 17 while(cin>>m>>k) 18 { 19 memset(mapx,0,sizeof(mapx)); 20 memset(h,0,sizeof(h)); 21 memset(ve,0,sizeof(ve)); 22 memset(vl,0,sizeof(vl)); 23 int i,u,v,countx; 24 for(i=1; i<=k; i++) 25 { 26 cin>>u>>v>>countx; 27 mapx[u][v]=countx; 28 h[v]++; 29 } 30 tuopu(); 31 gengxin(); 32 } 33 } 34 void tuopu() 35 { 36 int i,flag=0,j; 37 while(flag=!flag) 38 { 39 for(i=1; i<=m; i++) 40 { 41 if(h[i]==0) 42 { 43 flag=0; 44 h[i]=-1; 45 zhan.push(i); 46 for(j=1; j<=m; j++) 47 if(mapx[i][j]!=0) 48 h[j]--; 49 //更新 ve数组 50 int y=0; 51 for(j=1; j<=m; j++) 52 { 53 if(mapx[j][i]!=0) 54 { 55 if(mapx[j][i]+ve[j]>y) 56 { 57 y=mapx[j][i]+ve[j]; 58 } 59 } 60 } 61 ve[i]=y; 62 } 63 } 64 } 65 /*while(!zhan.empty()) 66 { 67 cout<
<<" "; 68 zhan.pop(); 69 } 70 cout<
vl[i]-mapx[x][i]) 93 y=vl[i]-mapx[x][i]; 94 } 95 } 96 vl[x]=y; 97 zhan.pop(); 98 } 99 //验证输出vl数组100 /*for(i=1;i<=m;i++)101 cout<
<<" ";102 cout<
View Code

 

上一篇:poj 2262【素数表的应用---判断素数】【哈希】
下一篇:继承与派生[练习]

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月14日 18时53分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章