poj 1949——Chores
2014-07-13 11:38
239 查看
题意:给出一些要做的事情,每件事情做之前需要完成另外一些事情才能做。求完成所有事情需要的最短时间。
思路:第一眼看上去像拓扑排序,但是题目中说第K件事需要提前完成的事情一定在1到K-1之间。endtime[i]=max(endtime[i],endtime[j]+lasttime[i]),其中j是做i需要提前完成的事情。
代码如下:
思路:第一眼看上去像拓扑排序,但是题目中说第K件事需要提前完成的事情一定在1到K-1之间。endtime[i]=max(endtime[i],endtime[j]+lasttime[i]),其中j是做i需要提前完成的事情。
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; const int maxn=10005; int endtime[maxn]; int lasttime[maxn]; vector<int> pre[maxn]; int main(){ // freopen("data.txt","r",stdin); int n; scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d",&lasttime[i]); endtime[i]=lasttime[i]; int c; scanf("%d",&c); for(int j=0;j<c;j++) { int d; scanf("%d",&d); pre[i].push_back(d); } } int ans=endtime[1]; for(int i=2;i<=n;++i) { for(int j=0;j<pre[i].size();++j) { endtime[i]=max(endtime[i],endtime[pre[i][j]]+lasttime[i]); } ans=max(ans,endtime[i]); } printf("%d\n",ans); return 0; }
相关文章推荐
- poj 1949 Chores
- (POJ DP1.1)POJ 1949 Chores(简单DP)
- [poj 1949]Chores 题解 [dp]
- POJ 1949 Chores 动态规划
- POJ 1949 Chores(树状DP)
- poj1949 Chores SPFA
- poj 1949 Chores
- POJ 1949 Chores
- POJ 1949 Chores
- POJ 1949 Chores(DP)
- POJ 1949 Chores
- POJ 1949 Chores 拓扑排序
- 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