洛谷P3074牛奶调度解题报告
来源:互联网 发布:java class.getname 编辑:程序博客网 时间:2024/05/22 04:46
这题其实是真的简单,但是有些细节要注意
大概就是每一头牛都开个数组存它之前必须要挤奶的牛,再定义一个更新数组,然后走一遍O(n)的循环,每次去找前面的牛是否更新,没有更新就更新再将更新数组标1,已经全部更新了就找其中所需时间最长的加上自己的时间,然后再将自己标为已更新,最后再走一遍循环找最大的时间就可以了(ps:如果一头牛更新两次的话,超时不说,而且每次数值也会变掉,必定WA)
AC代码:
#include<iostream>#include<cstdio>using namespace std;int chu[10005][10005]/*存父牛*/,t[10005],cen=0,gg[10005],n,m,gen[10005]int milk(int u)//更新{ int ans=0; if(!chu[u]) return t[u]; else for(int i=1;i<=chu[u][0];i++) { if(!gen[chu[u][i]])//如果没有更新就更新 { gen[chu[u][i]]=1; t[chu[u][i]]=milk(chu[u][i]); } ans=max(ans,t[chu[u][i]]); } t[u]+=ans; gen[u]=1;//标为已更新 return t[u];}int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>t[i]; for(int i=1;i<=m;i++) { int a,b; cin>>b>>a; chu[a][0]++; chu[a][chu[a][0]]=b;//存之前的牛 } for(int i=1;i<=n;i++) { if(!gen[i])//如果已经更新就不需要更新了,不然会WA milk(i); } for(int i=1;i<=n;i++) { cen=max(cen,t[i]); } cout<<cen<<endl; return 0;}
阅读全文
0 0
- 洛谷P3074牛奶调度解题报告
- 【codevs2094/usaco】 量取牛奶 解题报告
- 最佳调度问题 解题报告
- 洛谷 P3093 [USACO13DEC]牛奶调度Milk Scheduling
- 洛谷 3093 [USACO13DEC]牛奶调度Milk Scheduling
- 【洛谷 3093】[USACO13DEC]牛奶调度Milk Scheduling
- 洛谷 P3093 牛奶调度Milk Scheduling
- 洛谷P3093 [USACO13DEC]牛奶调度Milk Scheduling(贪心)
- JZOJ.4465[GDOI2016模拟4.22] 飞机调度 解题报告
- P3093 [USACO13DEC]牛奶调度Milk Scheduling
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 动态规划解机器调度问题——算法解题报告
- 基于Dragonboard 410c的智能开关
- IntelliJ IDEA的Rebuild顺序,运行的文件跟原文件不相同
- Twitter 架构优化之路--Twitter是如何做到每秒处理3000张图片
- Codeforces 842C(思维)
- 微信小程序入门
- 洛谷P3074牛奶调度解题报告
- [初学笔记] 转义字符 转换字符 escape characters
- opencv 图像阴影检测
- 公钥与私钥
- C语言中 char 类型的取值范围为什么是-128~127
- RDD的创建与操作
- Android Studio gradle 文件中 ${supportLibVersion} 用法
- 为什么说任何基于比较的算法将 5 个元素排序都需要 7 次?
- python入门 环境搭建