题目链接:计算机软件能力认证考试系统
http://118.190.20.162/view.page?gpid=T159



最早开始时间是受之前依赖的项目限制,若无依赖,第一天即可开始。若有依赖,等待前置项目完成才能开始,累加即可。
最晚开始时间在能够完成所有项目的情况下输出。受限于是否有其他项目依赖于本项目,只选择用时最长的那一项做限制。从后往前遍历。yuashi[]用来记录最原始的每个项目耗时。
- #include
- using namespace std;
- #define N 366
- #define M 101
- int rely[M];
- int cost[M];
- int yuashi[M];
- int main()
- { int n,m;
- cin>>n>>m; //n days,m 项
- for(int i=1;i<=m;i++)
- {
- cin>>rely[i];
- }
- for(int i=1;i<=m;i++)
- { int c;
- cin>>c;
- cost[i]=cost[rely[i]]+c;
- yuashi[i]=c;
- }
- for(int i=1;i<=m;i++)
- {
- cout<<1+cost[rely[i]]<<" ";
- }
- cout<
- int max=0;
- for(int i=1;i<=m;i++)
- if(cost[i]>max) max=cost[i];
-
- if(max>n) ;
- else{
- for(int i=m;i>=1;i--){
- vector<int> berelyed;
- for (int j = 1; j <=m ; ++j) {
- if(rely[j]==i) berelyed.push_back(j);
- }
- int maxx=0;
- for (int j = 0; j
size() ; ++j) { - if(yuashi[berelyed[j]]>maxx) maxx=yuashi[berelyed[j]];
- }
- yuashi[i]+=maxx;
- }
- for(int i=1;i<=m;i++)
- {
- cout<
1-yuashi[i]<<" "; - }
- cout<
- }
- return 0;
- }
-
相关阅读:
⑩⑥ 【MySQL】详解 触发器TRIGGER,协助 确保数据的完整性,日志记录,数据校验等操作。
Highcharts 标示区曲线图;Highcharts 对数图表;Highcharts 时间间隔图表
python爬虫实战——小红书
BLEMotion-Kit 支蓝牙运动传感评估套件
比特币与火人节
Window下完全卸载MySQL教程
【工具】java判断某个时间是否在时间范围区间内
华为机试真题 C++ 实现【流水线调度】
零基础学Java(11)自定义类
程序是怎样跑起来的
-
原文地址:https://blog.csdn.net/weixin_62438655/article/details/132919479