pojTest for Job
来源:互联网 发布:javascript 闭包 编辑:程序博客网 时间:2024/06/13 05:01
题目大意:
每经过一个城市,都会有一定的消耗或者是加成,现在给你多个出发城市和多条路径,问你走哪条路径能够获得最大的收益。每条路径都不存在环,且为有向的路径。
解题思路:
有向无环图(DAG)求最短路;
1、对图进行拓扑排序
2、根据拓扑排序进行一次松弛操作即可
1、2步可同时进行。
代码:
#include<stdio.h>const int N = 100010;//顶点个数const int M = 1000010;//边的数const int inf = 1<<30;struct node{ int to; int next;};node edg[M];int head[N],h;void add(int a,int b){ edg[h].to=b; edg[h].next=head[a]; head[a]=h++;}int ind[N],outd[N],profit[N],n,m;int q[N];int dis[N],ans;void getans(){ int h = 0, t = 0, i,k; for( i = 1; i <= n; i++) if(ind[i] == 0) { q[t++] = i; dis[i] = profit[i]; } for(i=0;i<t;i++) { int u = q[i]; for( k = head[u]; k != -1; k = edg[k].next) { int v = edg[k].to; dis[v] =dis[v]>(dis[u] + profit[v])?dis[v]:(dis[u] + profit[v]); ind[v]--; if(ind[v] == 0) q[t++] = v; } }}void initi(){ int i; for(i=0;i<=n;i++) { head[i]=-1; ind[i]=outd[i]=0; dis[i]=-inf; } h=0; ans=-inf;}int main(){ int i,a,b; while(scanf("%d%d",&n,&m)!=EOF) { initi(); for(i=1;i<=n;i++){ scanf("%d",&profit[i]);// if(profit[i]<0)// return 0; } for(i=0;i<m;i++) { scanf("%d%d",&a,&b); add(a,b); ++ind[b]; ++outd[a];//出度为零则为终点 } getans(); for(i=1;i<=n;i++) { if(outd[i]==0) ans=ans>dis[i]?ans:dis[i]; } printf("%d\n",ans); } return 0;}//把权值的绝对值大于0看成了权值大于0,忙了一上午,我勒个擦。
0 0
- pojTest for Job
- hunt for job
- The "apply for job"
- Prepared for a job
- pku3249 Test for Job
- Codes for Job Hunt
- POJ3249Test for Job
- java for finding job
- [poj3249]Test For Job
- Prepare for Job-hopping
- POJ3249 Test for Job
- The Difference of Looking for Job and Waiting for Job
- Job Description For OES Testing
- Invite you for our job
- Hunting for my job...(1)
- Hunting for my job...(2)
- strive for findind a job
- POJ 3249 Test For Job
- css背景图与html插入img的区别
- 邀请大家试用我的创业产品
- hdu1406完数,区间左右在没注明大小的情况下要注意
- 图片和span水平垂直居中问题(主要解决小图标+文字水平垂直居中的问题)
- JavaScript经典代码【一】【DIV+CSS解决IE6,IE7,IE8,FF兼容问题】
- pojTest for Job
- wiki Oi题解
- table/div高度100%无效果问题
- poj 1195 mobile phones 二维树状数组
- bzoj1091: [SCOI2003]切割多边形
- 16 PHP 数组排序函数
- 一些定义
- 1057. Stack
- JavaScript经典代码【二】【FLASH中调用JS方法】