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. 30 GroupSock(Port)——live555源码阅读(四)网络

    30 GroupSock(Port)——live555源码阅读(四)网络 30 GroupSock(Port)——live555源码阅读(四)网络 简介 Port类的定义 Port的构造与全局的 &l ...

  2. HTML页面关键词随机分布布局

    结合underscore-min.js,和D3.js 绘制HTML关键词随机分布 <!DOCTYPE html> <html> <head> <meta ch ...

  3. iframe自适应宽度

    <iframe id="course_content" style="width:100%;margin:5px 0 0;" scrolling=&quo ...

  4. ndk学习17: jni之Java调用C&C++

    一.Hello World 1. 定义函数原型 native关键字定义的函数即为jni函数 2.生成头文件 切换到src目录执行: (这个过程可以写脚本自动完成,比如自动拷贝到jni目录) javah ...

  5. LinearLayout

    概念: LinearLayout是一种线性布局,他会将控件在水平和垂直方向做线性排列 官方文档: http://developer.android.com/guide/topics/ui/layout ...

  6. mysql性能优化学习笔记

    mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...

  7. nginx和apache的一些比较

    1.两者所用的驱动模式不同. nginx使用的是epoll的非阻塞模式事件驱动. apache使用的是select的阻塞模式事件驱动. 2.fastcgi和cgi的区别 当用户请求web服务的时候,w ...

  8. Zookeeper集群服务部署

    Zookeeper是一个分布式.开源的分布式应用程序协调服务,是Google的Chubby的开源实现,也是和Hadoop.Hbase相互配合的重要组件,作用就是为分布式应用程序提供一致性服务,包括配置 ...

  9. sql语句全集

    --删除外键alter table AdItem drop constraint AdOrder_AdItem_FK1(外键名称) --增加外键alter table AdItem add const ...

  10. C++ string和wstring互转实现

    [转载] http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html  很好,很强大,用到就是赚到! 代码如下: #include < ...