AcWing 1738. 蹄球 拓扑排序

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 1738. 蹄球 拓扑排序相关的知识,希望对你有一定的参考价值。

AcWing 1738. 蹄球
打卡
参考

竟然是拓扑排序,没想到哇。

有入度的点不会做起点。

#include<bits/stdc++.h>
using namespace std;
#define fir(i,a,n) for(int i=a;i<=n;i++)
const int N=1e2+10;
int n,ans;
int a[N],b[N],rd[N];//入度 
int v[N];
void dfs(int u)

	v[u]=1;
	if(!v[b[u]]) dfs(b[u]);//u能走到的地方没走过 

int main()

	cin>>n;
	fir(i,1,n) cin>>a[i];
	sort(a+1,a+1+n);
	
	b[1]=2;b[n]=n-1;//初始化 
	for(int i=2;i<=n-1;i++)
	
		if(abs(a[i]-a[i-1])<=abs(a[i+1]-a[i])) b[i]=i-1;//要往左走 
		else b[i]=i+1;
	
	
	for(int i=1;i<=n;i++)
	
		if(b[i]) rd[b[i]]++;
	
	
	fir(i,1,n)
	
		if(!rd[i]) //没有球会传给它 所以只有它来传球 
		
			ans++;dfs(i);
		
	
	fir(i,1,n)
	
		if(!v[i])//竟然这个地方没走过 那就给个球
		
			ans++;dfs(i);
		 
	
	cout<<ans;
	return 0;

以上是关于AcWing 1738. 蹄球 拓扑排序的主要内容,如果未能解决你的问题,请参考以下文章

AcWing 164.可达性统计(图论+拓扑排序+位运算)

AcWing 164.可达性统计(图论+拓扑排序+位运算)

AcWing 164.可达性统计(图论+拓扑排序+位运算)

AcWing 164.可达性统计(图论+拓扑排序+位运算)

AcWing:164. 可达性统计(拓扑排序 + 状态压缩算法)

AcWing 164. 可达性统计 拓扑排序+状态压缩