当前位置: 首页 > news >正文

北京国贸网站建设公司找资源最好的是哪个软件

北京国贸网站建设公司,找资源最好的是哪个软件,杭州网站关键词推广,沧州市任丘建设局网站E. Escape 思路: 可以看成 Sneaker 和杀戮机器人都不能在原地停留,然后杀戮机器人有个活动范围限制。如果 Sneaker 和杀戮机器人可以在原地停留,那么 Sneaker 到达一个点肯定会尽可能早,而且时间必须比杀戮机器人到达这个点短。那…

E. Escape

在这里插入图片描述

思路:

可以看成 Sneaker 和杀戮机器人都不能在原地停留,然后杀戮机器人有个活动范围限制。如果 Sneaker 和杀戮机器人可以在原地停留,那么 Sneaker 到达一个点肯定会尽可能早,而且时间必须比杀戮机器人到达这个点短。那么预处理一下每个点最早什么时候会被杀戮机器人到达,然后在这个基础上处理出1 ∼n 的最短路即可。

由于每个机器每个时刻都不会停。我们需要分奇数和偶数时刻,来记录它们会出现的位置。

我们把点拆分为i,i+n两个点做记录。

先预处理bfs,记录所有机器人的可达点。

再跑一遍bfs,计算从起点到终点,需要的最短路径。单组数据时间复杂度 O(n + m)。

代码:

#include <bits/stdc++.h>
#define int long long
#define pii pair<int, int>
using namespace std;
const int N = 1e5 + 5;
const int mod = 998244353;
#define ll long long
const int maxn = 1000010;
#define inf 2000000000int n, m, d;
vector<int> g[maxn];
int k;
int dis[maxn];
int pre[maxn];
int dis2[maxn];
int u, v;
bool vis[maxn];void solve()
{scanf("%lld%lld%lld", &n, &m, &d);// initfor (int i = 0; i <= n; ++i){g[i].clear();vis[i] = vis[i + n] = 0;pre[i] = pre[i + n] = 0;dis[i] = dis[i + n] = inf;dis2[i] = dis2[i + n] = inf;}// build graghfor (int i = 1; i <= m; ++i){scanf("%lld%lld", &u, &v);--u, --v; // 点下标偏移到[0,n-1]g[u].push_back(v);g[v].push_back(u);}// cal dis2.scanf("%lld", &k);queue<int> q;for (int i = 1; i <= k; ++i){scanf("%lld", &u);--u; // 点下标偏移到[0,n-1]q.push(u);vis[u] = 1;dis2[u] = 0;}while (!q.empty()){u = q.front();q.pop();int f = u / n; // 偶数/奇数时刻int x = u % n; // 原始点if (dis2[u] == d){ // 超出范围continue;}for (auto v : g[x]){int y = v + n * (!f); // 下一个点if (!vis[y] && dis2[y] > dis2[u] + 1){dis2[y] = dis2[u] + 1;q.push(y);vis[y] = 1;}}}// cal dis.for (int i = 0; i <= 2 * n; ++i){vis[i] = 0;}pre[0] = -1; // 记录位置,便于输出答案dis[0] = 0;q.push(0);vis[0] = 1;while (!q.empty()){ // bfs过程同上,不赘述u = q.front();q.pop();int f = u / n;int x = u % n;for (auto v : g[x]){int y = v + n * (!f);if (dis[y] <= dis[u] + 1){continue;}if (dis[u] + 1 >= dis2[y]){continue;}dis[y] = dis[u] + 1;pre[y] = u;q.push(y);vis[y] = 1;}}if (!vis[n - 1] && !vis[2 * n - 1]){ //printf("-1\n");return;}int ed = dis[n - 1] < dis[2 * n - 1] ? n - 1 : 2 * n - 1;printf("%lld\n", dis[ed]);vector<int> res;while (ed != -1){res.push_back(ed);ed = pre[ed];}reverse(res.begin(), res.end());for (auto x : res){// 这里 x % n 求出原始点,// +1是为了复位,偏移到 [1,n]printf("%lld ", x % n + 1);}printf("\n");
}signed main()
{// std::ios::sync_with_stdio(0);// cin.tie(0);// cout.tie(0);int t = 1;scanf("%lld", &t);while (t--){solve();}return 0;
}
http://www.shuangfujiaoyu.com/news/36480.html

相关文章:

  • 深圳ui设计培训seo和sem的区别是什么?
  • 做网站seo整站优化报价
  • 新乡市红旗区建设局网站推广策划书模板范文
  • 先做公众号在做网站天猫seo搜索优化
  • 张家界网站建设方案电商引流推广方法
  • 个人网站如何做淘客网站常用的搜索引擎有哪些?
  • 制作小程序官网网站搭建谷歌seo
  • 政府网站维护运行方案营销策略理论
  • 常平镇网站仿做近几天发生的新闻大事
  • 做网站太麻烦了游戏推广员是做什么的
  • 你做我评网站会自动查论文相似度吗广东网络推广运营
  • 杭州网站建设哪家设计好咸阳网站建设公司
  • 权威的南通网站建设怎么建立一个公司的网站
  • wordpress建设的网站谷歌搜索关键词排名
  • 网站建设面包屑导航条移动排名提升软件
  • 网站推广 排名百度广告点击软件
  • 网站seo视频狼雨seo教程百度快照查询入口
  • 手表哪个网站最好互联网营销是什么
  • 如何创建网站教程视频全网营销推广方案外包
  • 网站开发如何引用函数站长工具网址是多少
  • 怎样才能建一个网站网络广告策划的步骤
  • 做外贸网站诈骗怎么建网站
  • 腾讯云服务器可以做传奇网站吗那种网站怎么搜关键词
  • seo网站关键词排名快速安卓优化大师老版本
  • 阿里云做网站可以吗广州广告公司
  • 深圳的网站建设公司网站关键词查询
  • wordpress静态分离seo建站营销
  • 长沙 网站建设品牌推荐小广告设计
  • 注册一个网站多少钱?关键词快速排名seo怎么优化
  • 微信小商店开通百度seo优化按年收费