P3074 [USACO13FEB] Milk Scheduling S(拓扑排序)

思路:

核心:拓扑排序+

复制代码
ans[x]=max(ans[x],ans[t]+f[x]);

注意比当前大才更新!!!

接下来几乎就是拓扑排序模板啦~

ACcode:

复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=5e4+10;
int f[N],n,m,ru[N],ans[N];
vector<int>v[N];
void topsort() {
	queue<int>q;
	for(int i=1; i<=n; i++) {
		if(ru[i]==0) {
			ans[i]=f[i];
			q.push(i);
		}
	}
	while(!q.empty()) {
		int t=q.front();
		q.pop();
		for(auto x:v[t]) {
			 ans[x]=max(ans[x],ans[t]+f[x]);
			ru[x]--;
			if(ru[x]==0)q.push(x);
		}
	}
}
void solve() {
	cin>>n>>m;
	for(int i=1; i<=n; i++) cin>>f[i];
	for(int i=1; i<=m; i++) {
		int x,y;
		cin>>x>>y;
		v[x].push_back(y);
		ru[y]++;
	}
	topsort();
	int mmax=-1;
	for(int i=1;i<=n;i++){
		mmax=max(mmax,ans[i]);
	}
	cout<<mmax<<"\n";
}
signed main() {

	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int tt=1;
	//cin>>tt;
	while(tt--) solve();
	return 0;
}
//3

over~

相关推荐
~|Bernard|10 分钟前
在 PyCharm 里怎么“点鼠标”完成指令同样的运行操作
算法·conda
战术摸鱼大师12 分钟前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
Christo314 分钟前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘
好家伙VCC1 小时前
数学建模模型 全网最全 数学建模常见算法汇总 含代码分析讲解
大数据·嵌入式硬件·算法·数学建模
liulilittle3 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
bkspiderx4 小时前
C++经典的数据结构与算法之经典算法思想:贪心算法(Greedy)
数据结构·c++·算法·贪心算法
中华小当家呐5 小时前
算法之常见八大排序
数据结构·算法·排序算法
沐怡旸6 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
一只懒洋洋7 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
方案开发PCBA抄板芯片解密8 小时前
什么是算法:高效解决问题的逻辑框架
算法