zoukankan      html  css  js  c++  java
  • Luogu P1113 杂务

    Luogu P1113 杂务

    我真的不知道为什么这题是图论题……
    因为第$n$件事的前驱只会在前$n-1$件事中,所以可以从第$1$件事开始遍历。
    而且,最优的情况便是第$i$件事的结束时间尽量大(第$1$件事的结束时间就是第$1$件事的花费时间),就选择第$i$件事作为第$n$件事的前驱。
    得到每件事的结束时间后,与$ans$取max即可。(注意这题是让我们求时间的最小值,但要用max取答案,思维容易走进误区)

    #include<bits/stdc++.h>
    #define N 50010
    
    using namespace std;
    
    int n,ans;
    
    struct node {
    	int time,finish,cnt;
    	int pre[110];
    }event[N];
    
    void Read() {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++) {
    		int id,preevent;
    		scanf("%d%d",&id,&event[i].time);
    		while(scanf("%d",&preevent)&&preevent!=0) {
    			event[i].pre[++event[i].cnt]=preevent;
    		}
    	}
    	return;
    }
    
    void Solve() {
    	event[1].finish=event[1].time;
    	for(int i=2;i<=n;i++) {
    		for(int j=1;j<=event[i].cnt;j++) {
    			event[i].finish=max(event[i].finish,event[event[i].pre[j]].finish+event[i].time);
    		}
    		ans=max(ans,event[i].finish);
    	}
    	printf("%d",ans);
    	return;
    }
    
    int main()
    {
    	Read();
    	Solve();
    	return 0;
    }
    
  • 相关阅读:
    发现可高速缓存的 SSL 页面
    启用了不安全的HTTP方法
    目录遍历漏洞
    强强合体:Docker版Kali Linux发布
    Kali2.0 Sqlmap清除历史扫描日志
    OWASP-ZAP
    基于web的项目管理软件Redmine
    sqlmap用户手册
    Sqlmap基础(二)
    信息存储安全
  • 原文地址:https://www.cnblogs.com/luoshui-tianyi/p/11520926.html
Copyright © 2011-2022 走看看