http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2498

代码超时怎么破:

 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
using namespace std;
int mapx[][],ve[],vl[],h[],m,k;
stack<int>zhan;
queue<int>e;
queue<int>l;
void tuopu();
void gengxin();
int main()
{
while(cin>>m>>k)
{
memset(mapx,,sizeof(mapx));
memset(h,,sizeof(h));
memset(ve,,sizeof(ve));
memset(vl,,sizeof(vl));
int i,u,v,countx;
for(i=; i<=k; i++)
{
cin>>u>>v>>countx;
mapx[u][v]=countx;
h[v]++;
}
tuopu();
gengxin();
}
}
void tuopu()
{
int i,flag=,j;
while(flag=!flag)
{
for(i=; i<=m; i++)
{
if(h[i]==)
{
flag=;
h[i]=-;
zhan.push(i);
for(j=; j<=m; j++)
if(mapx[i][j]!=)
h[j]--;
//更新 ve数组
int y=;
for(j=; j<=m; j++)
{
if(mapx[j][i]!=)
{
if(mapx[j][i]+ve[j]>y)
{
y=mapx[j][i]+ve[j];
}
}
}
ve[i]=y;
}
}
}
/*while(!zhan.empty())
{
cout<<zhan.top()<<" ";
zhan.pop();
}
cout<<endl;*/
//输出ve 数组
/*for(i=1;i<=m;i++)
cout<<ve[i]<<" ";
cout<<endl;*/
}
void gengxin()
{
//更新 vl数组和v数组,e数组
int i,j;
int x=ve[m];
for(i=; i<=m; i++)
vl[i]=x;
int maxx=x,z[],top=-,z1[];
while(!zhan.empty())
{
x=zhan.top();
int y=maxx;
for(i=; i<=m; i++)
{
if(mapx[x][i]!=)
{
if(y>vl[i]-mapx[x][i])
y=vl[i]-mapx[x][i];
}
}
vl[x]=y;
zhan.pop();
}
//验证输出vl数组
/*for(i=1;i<=m;i++)
cout<<vl[i]<<" ";
cout<<endl;*/
int countx=,q1=;
for(i=; i<=m; i++)
{
for(j=; j<=m; j++)
{
if(mapx[i][j]!=)
{
//e.push(ve[i]);
//l.push(vl[j]-mapx[i][j]);
if(ve[i]==vl[j]-mapx[i][j])
{
if(j==m)
q1=;
countx=countx+mapx[i][j];
z[++top]=i;
z1[top]=j;
break;
}
}
}
if(q1==)break;
}
cout<<countx<<endl;
for(i=; i<=top; i++)
cout<<z[i]<<" "<<z1[i]<<endl;
//验证输出
/*
while(!e.empty())
{
cout<<e.front()<<" ";
e.pop();
}
cout<<endl;
while(!l.empty())
{
cout<<l.front()<<" ";
l.pop();
}
cout<<endl;*/
}
/*测试数据
9 11
1 2 6
1 3 4
1 4 5
2 5 1
3 5 1
4 6 2
5 7 8
5 8 7
6 8 4
7 9 2
8 9 4
*/

sdut 2498【aoe 网上的关键路径】的更多相关文章

  1. SDUT 2498 AOE网上的关键路径

    AOE网上的关键路径 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 一个无环的有向图称为无 ...

  2. sdut AOE网上的关键路径(spfa+前向星)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2498&cid=1304 题目描述 一个无环的有向图称为无环图(Directed Acyc ...

  3. SDUTOJ 2498 数据结构实验之图论十一:AOE网上的关键路径

    题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2498.html 题目大意 略. 分析 ...

  4. AOE网上的关键路径(最长路径 + 打印路径)

    题目描述 一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图.     AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG ...

  5. 数据结构实验之图论十一:AOE网上的关键路径【Bellman_Ford算法】

    Problem Description 一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图.     AOE(Activity On Edge)网:顾名思义,用边 ...

  6. SDUT 2498-AOE网上的关键路径(spfa+字典序路径)

    AOE网上的关键路径 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 一个无环的有向图称为无环图(Directed Acycl ...

  7. SDUT-2498_AOE网上的关键路径

    数据结构实验之图论十一:AOE网上的关键路径 Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 一个无环的有向图称为无环图 ...

  8. AOE网与关键路径简介

    前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题.如果我们要对一个流程图获得最短时间,就必须要分析它们的拓扑关系,并且找到当中最关键的流程, ...

  9. AOE网络的关键路径问题

    关于AOE网络的基本概念可以参考<数据结构>或者search一下就能找到,这里不做赘述. 寻找AOE网络的关键路径目的是:发现该活动网络中能够缩短工程时长的活动,缩短这些活动的时长,就可以 ...

随机推荐

  1. Retina视网膜屏中CSS3边框图片像素虚边的问题

    虽然CSS3新增了这个功能,但是在W3school里面并没有给出具体详细的解释,还好网上不乏大神给你我们很全面的解释其中的原理-css3:border-image边框图像详解 边框图片的原理是四个角不 ...

  2. Android四种基本布局(LinearLayout \ RelativeLayout \ FrameLayout \ TableLayout)

    ------------------------------------------LinearLayout---------------------------------------------- ...

  3. Android_bug之 task ':app:mergeDebugResources'. > Some file crunching failed, see logs f

    今天调试安卓程序遇到的问题Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching fa ...

  4. HTML中属性ID和属性NAME有何区别?

    今天出美工面试题的时候,David让我加上一道题:HTML中id和name的区别.一听对呀,HTML中id和name有什么区别,只是平时在用,倒没怎么想过,只是那么用了罢了,呵呵,其实在做网页的时候有 ...

  5. git分支的合并

    原文: http://gitbook.liuhui998.com/3_3.html http://gitbook.liuhui998.com/5_3.html 一.如何分支的合并 在git中,可以使用 ...

  6. Tomcat 7最大并发连接数的正确修改方法

    这是个很简单的问题,但是搜了一圈,发现大家都写错了.所以这里总结一下: 几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的): -------- ...

  7. SELinux的关闭与开启

    SELinux是美国国家安全局对于强制访问控制的实现,是NSA在Linux社区的帮助下开发的一种访问控制体系,所以SELinux可以看做是安全强化的Linux子系统,和防火墙有相似点,作用之一是保证计 ...

  8. ACM/ICPC 之 分治法入门(画图模拟:POJ 2083)

    题意:大致就是要求画出这个有规律的Fractal图形了= = 例如 1 对应 X 2 对应 X  X   X    X  X 这个题是个理解分治法很典型的例子(详情请参见Code) 分治法:不断缩小规 ...

  9. markdown 基本语法

    代码块: ```console.log(1);```--- 标题: # h1## h2### h3 --- 粗斜体: *斜体***粗体*****粗斜体*** --- 强调:`强调` --- 链接:[百 ...

  10. Python~函数的参数

    def func(a,b,c,*args,**kw): print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw) 必选参数,默认参数,可变参数,关键字参数 d ...