POJ 1949 Chores
2012-03-19 22:00
330 查看
水题:拓扑排序
View Code
View Code
#include <stdio.h> #include <memory.h> #define N 10002 #define M 1000000 #define MOV(x) (x=(x+1)%N) int needtime ,finaltime ,indegree ; int queue ,font,rear; int nodevp ; int nodeu[M],next[M],ind; void addedge(int v,int u) { nodeu[ind]=u; next[ind]=nodevp[v]; nodevp[v]=ind++; } void solve() { int n,i,j,v,u; scanf("%d",&n); memset(nodevp,-1,sizeof(nodevp)); for(i=1;i<=n;i++) { scanf("%d %d",needtime+i,indegree+i); if(indegree[i]!=0) { for(j=0;j<indegree[i];j++) { scanf("%d",&v); addedge(v,i); } } else queue[MOV(rear)]=i; } while(font!=rear) { v=queue[MOV(font)]; for(i=nodevp[v];~i;i=next[i]) { u=nodeu[i]; if(--indegree[u] == 0) queue[MOV(rear)]=u; if(finaltime[v]+needtime[v]>finaltime[u]) finaltime[u]=finaltime[v]+needtime[v]; } } for(v=0,i=1;i<=n;i++) { finaltime[i]+=needtime[i]; if(finaltime[v]<finaltime[i]) v=i; } printf("%d\n",finaltime[v]); } int main() { // freopen("input.txt","r",stdin); solve(); return 0; }
相关文章推荐
- (POJ DP1.1)POJ 1949 Chores(简单DP)
- poj1949 Chores SPFA
- POJ 1949 Chores (DP+拓扑)
- poj 1949 Chores(基础题)
- poj 1949 Chores
- poj 1949 Chores 最长路
- POJ 1949 Chores
- poj 1949——Chores
- poj 1949 Chores
- 【poj 1949】Chores
- POJ 1949 Chores(DP)
- POJ 1949 Chores(树状DP)
- POJ 1949 Chores(树形dp)
- POJ 1949 Chores 动态规划
- [poj 1949]Chores 题解 [dp]
- POJ 1949 Chores
- POJ 1949 Chores 拓扑排序
- poj 1949 Chores
- POJ 1949 Chores
- poj 1949 Chores