hdu 4109 Instrction Arrangement (差分约束)
来源:互联网 发布:吉诺比利知乎 编辑:程序博客网 时间:2024/05/17 21:44
题意:
给出一些指令的拓扑序,询问最后一条指令需要多长时间
思路:
很明显给出的是 B-A>=C的形式,构造差分约束最长路最短的模型,注意加0点
#include <iostream>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <queue>#include <vector>#include <cmath>#include <stack>using namespace std;const int maxn=10005;typedef long long ll;vector<pair<int ,ll > > vec[maxn];int vis[maxn];int info[maxn];ll dis[maxn];const ll inf=0x3f3f3f3f3f3f3f3f;int n,m;int spfa(int st){ memset(info,0,sizeof(info)); memset(vis,0,sizeof(vis)); for(int i=0;i<=n;i++) { vis[i]=0,dis[i]=-inf,info[i]=0; } vis[st]=1,dis[st]=0,info[st]=1; deque<int>q; q.push_front(st); int u; while(!q.empty()) { u=q.front(); q.pop_front(); vis[u]=0; for(int i=0; i<vec[u].size(); i++) { int v=vec[u][i].first; ll w=vec[u][i].second; if( dis[v] < w+dis[u] ) { dis[v]=w+dis[u]; if(!vis[v]) { info[v]++; vis[v]=1; if(!q.empty()&&dis[v]<dis[q.front()]) q.push_back(v); else q.push_front(v); if(info[v]>n) { return 0; } } } } } return 1;}int main(){ while(~scanf("%d%d",&n,&m) ) { for(int i=0; i<=n; i++) vec[i].clear(); int u,v; ll w; ///造边 for(int i=1;i<=m;i++) { scanf("%d%d%lld",&u,&v,&w); vec[u].push_back(make_pair(v,w)); } for(int i=1;i<=n;i++) vec[0].push_back(make_pair(i,0)); ll maxx=0; spfa(0); for(int i=1;i<=n;i++) maxx=max(maxx,dis[i]); printf("%lld\n",maxx+1); } return 0;}
阅读全文
0 0
- HDU 4109 Instrction Arrangement(差分约束)
- hdu 4109 Instrction Arrangement (差分约束)
- HDU 4109 Instrction Arrangement 差分约束系统
- HDU 4109 Instrction Arrangement(差分约束系统)
- Instrction Arrangement (hdu 4109 差分约束)
- HDU 4109 Instrction Arrangement (拓扑or差分约束求关键路径)
- HDU-4109 Instrction Arrangement(差分约束系统+增加源点技巧)
- HDU4109 Instrction Arrangement【差分约束】【拓扑排序】
- HDU 4109 Instrction Arrangement
- Hdu 4109 Instrction Arrangement
- HDU 4109 Instrction Arrangement
- HDU 4109 Instrction Arrangement
- HDU 4109 Instrction Arrangement
- hdu 4109 Instrction Arrangement(关键路径)
- (关键路径)HDU 4109 Instrction Arrangement
- 【hdoj 4109】Instrction Arrangement
- hdu 4109 Instrction Arrangement 拓扑排序 关键路径
- hdu 4109 Instrction Arrangement 拓扑排序 关键路径
- 阿里云上Mysql数据库的备份
- 机器学习入门算法及其java实现-ID3(决策树)算法
- lock与synchronized使用中的注意事项(持续补充)
- 复习:一篇关于运算符重载的文章
- 机顶盒Launcher wifi模块隐藏wifi连接不上问题解决方案
- hdu 4109 Instrction Arrangement (差分约束)
- Oracle数据库-存储过程
- 用 SQL Server 2008 R2 打开 .sql 文件时提示“对COM组件的调用返回了错误HRESULT E_FAIL”
- debian 9 源
- TexLive + Sublime Text + laTeXTools + Sumatra PDF 进行Latex的使用教程
- linux sed命令详解
- java基础2——数据类型
- 32. iostat
- android音频(三)——利用ndk直接编译faac和faad