求DAG最长路 板子
来源:互联网 发布:在生产实践中用于数据 编辑:程序博客网 时间:2024/05/22 13:15
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #include<queue> using namespace std; const int INF=0x7fffffff/2; const int SIZEN=10010; int N,M; vector<pair<int,int> > c[SIZEN]; void SPFA(vector<pair<int,int> > c[SIZEN],int N,int S,int f[SIZEN]){//图中顶点0~N-1,邻接表为c,以S出发,结果存于f queue<int> Q; bool inq[SIZEN]={0}; for(int i=0;i<=N+1;i++) f[i]=-INF; f[S]=0,inq[S]=true,Q.push(S); while(!Q.empty()){ int x=Q.front();Q.pop();inq[x]=false; for(int i=0;i<c[x].size();i++){ int u=c[x][i].first; if(f[x]+c[x][i].second>f[u]){ f[u]=f[x]+c[x][i].second; if(!inq[u]){ inq[u]=true; Q.push(u); } } } } } int f[SIZEN]; void work(void){ SPFA(c,N,0,f); printf("%d\n",f[N+1]); } void read(void){ scanf("%d%d",&N,&M); int a,b,w; for(int i=0;i<=N+1;i++) c[i].clear(); for(int i=1;i<=M;i++){ scanf("%d%d%d",&a,&b,&w); c[a].push_back(make_pair(b,w)); } for(int i=1;i<=N;i++){ c[0].push_back(make_pair(i,0)); c[i].push_back(make_pair(N+1,0)); } } int main(){ int T;scanf("%d",&T); while(T--){ read(); work(); } return 0; }
阅读全文
0 0
- 求DAG最长路 板子
- SWJTU oj 2387 Magic Maze(DAG 求最长路)
- (求DAG图最长路)拓扑排序模板
- poj1949 DAG 最长路
- uva437 DAG最长路
- 求最长回文串长度板子
- UVA 437 DAG最长路
- 训练赛 Grouping(强连通分量缩点 + DAG求最长路)
- Codeforces #264 (Div. 2) D. Gargari and Permutations(DAG求最长路)
- poj 3592 Instantaneous Transference 强连通缩点+在DAG上dp求最长路
- DAG(递归实现最长路)
- uva 103 - Stacking Boxes DAG最长路
- uva 437 (dag 最长路)
- 【POJ】1949 Chores DAG最长路
- 挖地雷问题(DAG最长路)
- 洛谷1983(DAG上最长路)
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 】H Skiing 【求DAG图的最长路】
- spring mvc原理--这篇文章讲的比较透彻
- 队列的C语言实现(通过内核链表)
- 类的静态成员的用法
- Matlab的启动方式
- FaceDataset常用的人脸数据库
- 求DAG最长路 板子
- Java异常处理和设计
- jsp内置对象
- Android编译调用FFmpeg API,自己写方法,编译so库
- HDOJ1003(连续最大和)
- 我对产品需求的理解
- 局部变量、全局变量和静态变量的含义和区别
- MySQL中的两种临时表
- Linux管道和命令重定向