首页 > 其他分享 >断网测试1-拓扑排序-Timeline G

断网测试1-拓扑排序-Timeline G

时间:2024-01-27 09:05:24浏览次数:23  
标签:return int Timeline 拓扑 long 断网

洛谷P6145 第1题     Timeline G 查看测评数据信息

image.png

输入格式

 

image.png

image.png

 

输出格式

 

image.png

 

输入/输出例子1

输入:

4 10 3
1 2 3 4
1 2 5
2 4 2
3 4 4

 

 

输出:

1
6
3
8

 

 

样例解释

 

 

 

第b次挤奶在a几挤奶结束至少x天后结束,所以用拓扑

跟奖金很想,可以但是不用倒推了,正推即可(因为都是建图原因),注意longlong(可能不用开)

#include <bits/stdc++.h>
using namespace std;

const int N=1e6+5;
struct node
{
	int v;
	long long w;
};
int n, m, c, s[N], u1, v1, d[N], b[N], cnt=0;
vector<node> a[N];
long long w1, te[N];
queue<int> q;
long long max2(long long a, long long b)
{
	if (a>b) return a;
	else return b;
}
long long min2(long long a, long long b)
{
	if (a<b) return a;
	else return b;
}
int main()
{
	scanf("%d%lld%d", &n, &m, &c);
	for (int i=1; i<=n; i++) scanf("%d", &s[i]);
	for (int i=1; i<=c; i++)
	{
		scanf("%d%d%lld", &u1, &v1, &w1);
		a[u1].push_back({v1, w1});
		d[v1]++;
	}
	
	for (int i=1; i<=n; i++)
		if (!d[i]) q.push(i);
	while (!q.empty())
	{
		int u=q.front();
		q.pop();
		b[++cnt]=u;
		
		for (int i=0; i<a[u].size(); i++)
		{
			int v=a[u][i].v;
			d[v]--;
			if (!d[v]) q.push(v); 
		}
	}
//	for (int i=1; i<=n; i++) cout<<b[i]<<" ";
	
	for (int i=1; i<=n; i++) te[b[i]]=s[b[i]]; //初始化最早时刻
	for (int i=1; i<=n; i++)
	{
		int u=b[i];
		for (int j=0; j<a[u].size(); j++)
		{
			int v=a[u][j].v;
			long long w=a[u][j].w;
			te[v]=min2(m, max2(te[v], te[u]+w)); //注意不超过m
		}
	}
	
	for (int i=1; i<=n; i++) printf("%lld\n", te[i]);
	return 0;
}

 

标签:return,int,Timeline,拓扑,long,断网
From: https://www.cnblogs.com/didiao233/p/17991052

相关文章

  • 断网测试2-香甜的黄油
    洛谷P1825题目描述FarmerJohn发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道NNN只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。FarmerJohn很狡猾。像以前的Pavlov,他知道他可以训练这些奶牛,让它们在听到......
  • 拓扑排序
    讲解  例题  第1题   拓扑序列对下图所示的有向图进行拓扑排序,得到的拓扑序列可能是() 第2题   拓扑序列_以下关于拓扑排序的说法中,错误的是()。 若某有向图存在环路,则该有向图一定不存在拓扑排序在拓扑排序算法中为暂存入度为零的顶点,可......
  • 拓扑排序模板
    给定一个DAG(有向无环图),如果从\(u\)到\(v\)有边,则认为\(v\)依赖于\(u\)。如果\(u\)到\(v\)有路径(\(u\)可达\(v\)),则称\(v\)间接依赖于\(u\)。我们将图中的顶点以线性方式进行排序,使得对于任何的顶点\(u\)到\(v\)的有向边\((u,v)\),都可以有\(u\)在\(v\)的......
  • 图论总结——拓扑排序
    图论总结——拓扑排序例\(1\):排水系统(不是很模板的模板题)思路模板题,但是要进行分数约分,所以又不是很模板直接进行计算即可。注意计算过程中很可能爆\(long~~long\)类型范围,需要用\(int128\)类型进行存储。\(Code\)#include<bits/stdc++.h>#defineintlonglongusi......
  • 图论总结——拓扑排序
    图论总结——拓扑排序例\(1\):排水系统(不是很模板的模板题)思路模板题,但是要进行分数约分,所以又不是很模板直接进行计算即可。注意计算过程中很可能爆\(long~~long\)类型范围,需要用\(int128\)类型进行存储。代码#include<bits/stdc++.h>#defineintlonglongusingn......
  • 《拓扑学》复习笔记
    是1.15写的,但仅存了草稿,1.18终于想起来发布,没想到发布时间变成今天了(?麻,一点不懂,记录一下习题课感觉对于数学课,敲公式对学的效果比较有限,还是回去手写一遍其实写了,但截图发博客很麻烦。考前复习到凌晨三点,把讲义全看完了,但看过≠我会。此外还和好同学们讨论了往年......
  • 拓扑排序_学习记录
    拓扑排序_学习记录第一次在读入数据时被TLE……Whatis拓扑排序?拓扑排序——Topologicalsorting(所以说写函数名时用ts而不是tp),拓扑排序要解决的问题是给一个有向无环图的所有节点排序。顾名思义,就是可以把一个有向的无环的图中所有的点按照一定规则排序的算法……emm......
  • Android Webview判断网页加载完毕
    原文:AndroidWebview判断网页加载完毕-Stars-One的杂货小窝书接上文,在AndroidWebView获取html源码-Stars-One的杂货小窝此文讲到没有一个可以判断网页加载完毕的方法最近发现确实是有个解决方案,就是设置webViewClient里的onPageFinished方法判断当前webview进度,如下......
  • 拓扑排序(TopologicalSort)
    什么是拓扑排序?对一个有向无环图(DirectedAcyclicGraph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(TopologicalOrder)的序列,简称拓扑序列。简单的说,由某......
  • Unreal入门,Timeline动画02,动态材质
    这里动态材质效果主要是利用Timeline生成随时间变化的颜色插值来实现1.创建动态材质实例变量,用于控制材质动态效果将返回值提升为变量MI_Frame注意这里都是在ConstructionScript中完成的回到事件图表,添加颜色插值以实现动态材质变化注意这里的变化参数来自于门框材质......