星球游戏------------------------------思维(最短路+虚拟源点)

31 篇文章 0 订阅

在这里插入图片描述

在这里插入图片描述

解析:
建立一个虚拟源点连接牛牛所占领得星球,然后虚拟源点作为最短路得起点。即可

int w[500005],e[500005],ne[500005],h[500005],idx;
void add(int a,int b,int c)
{
	e[idx]=b;w[idx]=c;ne[idx]=h[a];h[a]=idx++;
}

int n,p,q,x,y,z;
int dist[500005];
bool st[500005];
void dij(int n)
{
	priority_queue<pair<int,int> ,vector<pair<int,int> >,greater<pair<int,int> > > q;
	q.push({0,n});
	memset(dist,0x3f,sizeof dist);
	dist[n]=0;
	while(q.size())
	{
		auto u=q.top();q.pop();
		int x=u.second;
		if(st[x]) continue;
		st[x]=1;
		for(int i=h[x];~i;i=ne[i]){
			int v=e[i];
			if(dist[v]>dist[x]+w[i]){
				dist[v]=dist[x]+w[i];
				q.push({dist[v],v});
			}
		}
	}
}
int Length(vector<int>& niuniu, vector<int>& niumei, vector<vector<int> >& path, int nn) {
        // write code here
        memset(h,-1,sizeof h);
        for(auto x : niuniu){
        	//cout<<x<<endl;
        	add(nn+1,x,0);add(x,nn+1,0);
		}
		for(auto x:path){
			//cout<<x[0]<<"  "<<x[1]<<"  "<<x[2]<<endl;
			add(x[0],x[1],x[2]);
			add(x[1],x[0],x[2]);
		}
		int ans=0x3f3f3f3f;
		dij(nn+1);
		for(auto x:niumei){
			ans=min(ans,dist[x]);
			
		}
		if(ans==0x3f3f3f3f) ans=-1;
		return ans;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
virtualplanetbuilder-0.9.12 是一个虚拟星球构建器的版本号。它是一款用于创建虚拟星球的软件工具。通过该软件,用户可以根据自己的想象,自定义并构建一个独特的虚拟星球。 这个版本号中的 0.9.12 表示软件的开发进程。当软件处于初始开发阶段时,一般采用 0.x.x 的形式,表示初步的版本。而9和12是随着软件的不断改进所引入的修改和修复的次数,标示了软件的更新历程。 使用 virtualplanetbuilder-0.9.12,用户可以选择不同的地貌、气候和生物群落,从而构建一个独一无二的虚拟星球。用户可以选择星球的大小、重力和旋转速度,并且可以自定义地图的生成算法。用户可以根据自己的需求设置地球的特征,比如山脉、河流、湖泊等。 此外,virtualplanetbuilder-0.9.12 还提供了一系列的工具和功能,使用户能够更好地进行星球的构建和编辑。用户可以添加自定义的植被、动物和其他生物种群,从而使星球更加生动且具有丰富的生态系统。用户还可以探索星球的各个角落,了解地球的各种信息,如地形高度、气温、降水量等。 总之,virtualplanetbuilder-0.9.12 是一款功能强大的软件工具,通过它,用户可以创造出自己的虚拟星球,并自由地进行编辑和探索。无论是科幻创作、游戏开发还是教育研究,这个软件都能提供便利和创造性的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值