sicily 1308. Dependencies among J

原创 2015年11月20日 20:58:18

1308. Dependencies among J

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

As everybody knows, our staffs need to do a lot of jobs to prepare for GDCPC’2003 (ZSUCPC’2003). But I bet you can not image how terrible to arrange the jobs. We know, sometimes there are dependencies among the jobs. We say job 2 depends on job 1 that means before starting job 1 we must finish job 2. We assume that there is only one job processing in one moment, and any job is dependent on no more than ten jobs. 

 

When we make up a jobs’ schedule, we should check whether it is valid. Now, your task is to find out the earliest finish time of some jobs.

Input

Input will contain several test cases. The first line of each test case contains two integer numbers N (0≤N≤10,000) and M. The jobs are numbered from 1 to N. You need to calculate the earliest finish time of the job M. And then, the following N lines describe jobs. The first line is corresponding the job 1, second line is corresponding the job 2 and so on. 

 

Each job’s describing line contains several positive integer numbers. The numbers are separated by spaces. The first one of the ith line shows the time (≤100) that ith job cost. The rest of numbers of the ith line are the jobs on which the job I depends. 

 

N=0 indicate the end of input file. We guaranteed there is no circle on dependency.

Output

For each test case you should output one line, and just one number in this line. The number is the earliest finishing time of job M.

Sample Input

2 232 13 332 14 1 20

Sample Output

59

题目分析

已知各个任务的花费时间和依赖关系
求执行到某个任务最快需要多久
有向图,以该任务为根,反溯直到根节点(可能有多个)
注意可能某个点会回溯几次,要打好标记避免重复计算,防止超时


#include <iostream>
#include <vector>

struct Node {
  int cost;
  int papa[11];
  int count;
} nodes[10001];
int num, target;
int ans;

void deal(std::string line, int index) {
  int temp = 0;
  int i;
  for (i = 0; line[i] != ' ' && i < line.length(); ++i)
    temp = temp * 10 + (line[i]-'0');
  nodes[index].cost = temp;
  temp = 0;
  for (i = i + 1; i < line.length(); ++i) {
    if (line[i] == ' ') {
      nodes[index].papa[nodes[index].count++] = temp;
      temp = 0;
    } else {
      temp = temp * 10 + (line[i]-'0');
    }
  }
  if (temp != 0)
    nodes[index].papa[nodes[index].count++] = temp;
}

void dfs(int index) {
  ans += nodes[index].cost;
  nodes[index].cost = 0;
  for (int i = 0; i < nodes[index].count; ++i) {
    if (nodes[nodes[index].papa[i]].cost != 0)
      dfs(nodes[index].papa[i]);
  }
}


int main()
{
  while (std::cin >> num && num != 0) {
    std::cin >> target;
    std::string line;
    getline(std::cin, line);
    for (int i = 0; i <= num; ++i)
      nodes[i].count = 0;
    for (int i = 1; i <= num; ++i) {
      getline(std::cin, line);
      deal(line, i);
    }
    ans = 0;
    dfs(target);
    std::cout << ans << std::endl;
  }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

中山大学Sicily在线测评系统题目分类

Classified Problems on Online Judge 练习题选自以下在线测评系统 * sicily: http://soj.me, 中山大学Sicily在线测评系统 ...
  • cuhkljt
  • cuhkljt
  • 2013年06月26日 21:39
  • 4791

CocoaPods详解之----使用篇

一、什么是CocoaPods 1、为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson、AFNetworking、Reachability等等。使用这...
  • wzzvictory_tjsd
  • wzzvictory_tjsd
  • 2014年01月26日 17:26
  • 62360

spring中的autowird流程思考

今天在Spring的项目中遇到了NoUniqueBeanDefinitionException的问题。 这个已经是耳熟能详的问题,开发过spring的人都知道使用了@autowired的注解,如果xm...
  • darkness_t
  • darkness_t
  • 2016年01月29日 10:43
  • 1404

Sicily 1308. Dependencies among J

1308. Dependencies among J Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description As ...
  • u012925008
  • u012925008
  • 2015年03月19日 08:42
  • 384

Sicily 1308 Dependencies among J (SOJ 1308) 【BFS 广度优先搜索】

原题地址:点击打开链接 一开始以为是拓扑排序,因为看上去比较像,等写了一半后发现实际这题的做法和广搜是一样的。 ——————正文—————— 根据输入可以建立一个有向图,从目标点m开始,向前寻找...
  • fanfanK
  • fanfanK
  • 2013年05月20日 22:15
  • 1383

Scicily 1308 Dependencies among Job(2003年广东省赛题)

题目链接:http://soj.me/1308 题目描述: 给出N项工作,以及工作之间的依赖关系,求出第M项工作的最早完成时间。其中第i项工作依赖于第j项工作表示,完成第j项工作之后才能完成第i项...
  • Jianquan520
  • Jianquan520
  • 2013年04月18日 19:49
  • 442

neo4j-jdbc-2.3.2-jar-with-dependencies.jar

  • 2016年04月20日 14:57
  • 6.75MB
  • 下载

crawler4j-4.1-jar-with-dependencies

  • 2017年02月05日 14:54
  • 32.03MB
  • 下载

Peer.js Based Video Share Among Connected Peers (基于Peer.js实现的对等端间视频共享)

在上一篇博客Peer.js 基本介绍
  • liulangdeyue
  • liulangdeyue
  • 2014年07月28日 14:15
  • 997

chanel replica Bearing among mind the high social criterion bonded apt Armani handbags

Bearing surrounded mind the lofty social criterion bonded to Armani handbags, it goes far beyond com...
  • u020075205
  • u020075205
  • 2014年09月05日 23:32
  • 18
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sicily 1308. Dependencies among J
举报原因:
原因补充:

(最多只允许输入30个字)