2019.4.7 提高B组 T4 nssl-1307 家庭游戏

版权声明:虽然本蒟蒻很菜,但各位dalao转载请注明出处谢谢。 https://blog.csdn.net/xuxiayang/article/details/89190193

D e s c r i p t i o n Description

原题


C o d e Code

#include<cstdio>
#include<algorithm>
using namespace std;long long n,f[200001],tot,t,p,s;
struct node{long long t,p;}a[200001];
inline bool cmp(node x,node y){return x.p>y.p||x.p==y.p&&x.t<y.t;}
inline long long find(long long x){return x==f[x]?x:f[x]=find(f[x]);}
signed main()
{
	scanf("%lld",&n);
	for(register int i=1;i<=n;i++)
	{
		scanf("%lld%lld",&t,&p);
		if(p>0) a[++tot]=(node){min(t,n),p};
		f[i]=i;
	}
	sort(a+1,a+1+tot,cmp);
	for(register int i=1;i<=tot;i++)
	{
		int fx=find(a[i].t);
		f[fx]=find(fx-1);//向上一个时间点离连边
		if(fx) s+=a[i].p;//时间是够的
	}
	printf("%lld",s);
}

猜你喜欢

转载自blog.csdn.net/xuxiayang/article/details/89190193
今日推荐