链接:https://ac.nowcoder.com/acm/contest/317/C?&headNav=acm
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球。其中每个星球有一个能量指数pp。星球ii能到达星球jj当且仅当pi>pjpi>pj。
同时小a的飞船还有一个耐久度tt,初始时为11号点的能量指数,若小a前往星球jj,那么飞船的耐久度会变为t⊕pjt⊕pj(即tt异或pjpj,关于其定义请自行百度)
小a想知道到达nn号星球时耐久度最大为多少

注意:对于每个位置来说,从它出发可以到达的位置仅与两者的pp有关,与下标无关

输入描述:

第一行一个整数nn,表示星球数接下来一行有nn个整数,第ii个整数表示pipi

输出描述:

一个整数表示到达nn号星球时最大的耐久度若不能到达nn号星球或到达时的最大耐久度为00则输出−1−1
示例1

输入

复制

3
457 456 23

输出

复制

478

说明

小a有两种方法到达33号星球第一种:1→2→31→2→3,最终耐久度为457⊕456⊕23=22457⊕456⊕23=22第二种:1→31→3,最终耐久度为457⊕23=478457⊕23=478

示例2

输入

复制

4
2 4 4 2

输出

复制

-1

示例3

输入

复制

5
234 233 123 2333 23

输出

复制

253

备注:

1⩽n,∀pi⩽30001⩽n,∀pi⩽3000

这个题目可以处理一下,也可以不处理,差不多。

这个bfs,需要用vis标记一下,这个vis标记,是去标记这个得到的数值。

这个是为了不超内存,让尽量少的数进入队列。

还要注意的就是这个题目的理解,应该是只要耐久度大于想去的星球才可以降落。

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <queue>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn = 3e4;
int a[maxn], b[maxn],k, ans= -1;
bool vis[maxn];
int n;
struct node
{int id, num;node(int id = 0, int num = 0) :id(id), num(num) {}
};void bfs()
{queue<node>que;que.push(node(1, b[1]));vis[b[1]] = true;while (!que.empty()){node u = que.front(); que.pop();int x = u.id, y = u.num;for (int i = 2; i < k; i++){if (b[i] >= y) continue;if(i==k-1){ans = max(ans, y^b[i]);continue;}if (vis[y^b[i]]) continue;vis[y^b[i]] = true;que.push(node(i, y^b[i]));}}
}int main()
{k = 1;cin >> n;for (int i = 1; i <= n; i++) scanf("%d", &a[i]);if (a[1] <= a[n]){printf("-1\n");return 0;}for (int i = 1; i <= n; i++){if (a[i] > a[1]) continue;if (a[i] < a[n]) continue;b[k++] = a[i];}bfs();printf("%d\n", ans);return 0;
}

  

转载于:https://www.cnblogs.com/EchoZQN/p/10561409.html

牛客 小a与星际探索 bfs相关推荐

  1. 牛客-小a与星际探索

    这是一道伪图论题 链接:https://ac.nowcoder.com/acm/problem/22144 来源:牛客网 题目描述 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往n ...

  2. 牛客——小a与星际探索

    链接:https://ac.nowcoder.com/acm/contest/317/C 来源:牛客网 题目描述 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球.其中每个 ...

  3. 小a与星际探索vector向量

    小a与星际探索 题目描述: 链接: https://ac.nowcoder.com/acm/contest/317/C 来源:牛客网 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n ...

  4. 1C.小a与星际探索(C++)

    小a与星际探索(C++) 点击做题网站链接 题目描述 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n号星球.其中每个星球有一个能量指数p.星球i能到达星球j当且仅当pi>pj ...

  5. 牛客小d和孤独的区间

    牛客小d和孤独的区间 这道题我们如果等到数据都输入完后再计算会浪费很多时间 所以还是每次输入都计算一遍 我们知道要找到一个区间里只有一个1,其余都是0 所以这时候我们可以将输入分为两种情况 1,输入为 ...

  6. 【牛客 - 317C】小a与星际探索(背包dp 或 线性基)

    题干: 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球.其中每个星球有一个能量指数pp.星球ii能到达星球jj当且仅当pi>pjpi>pj. 同时小a的飞船还 ...

  7. 小a与星际探索 线性基算法

    链接:https://ac.nowcoder.com/acm/contest/317/C 来源:牛客网 题目描述 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n号星球.其中每个星球 ...

  8. 小a与星际探索(dp)

    链接:https://ac.nowcoder.com/acm/contest/317/C 来源:牛客网 题目描述 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n号星球.其中每个星球 ...

  9. 【牛客 - 188C】水图(bfs树的直径,思维)

    题干: 链接:https://ac.nowcoder.com/acm/contest/188/C 来源:牛客网 小w不会离散数学,所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图 ...

  10. 牛客网挑战赛24 青蛙(BFS)

    链接:https://www.nowcoder.com/acm/contest/157/E 来源:牛客网 有一只可爱的老青蛙,在路的另一端发现了一个黑的东西,想过去一探究竟.于是便开始踏上了旅途 一直 ...

最新文章

  1. T-SQL笔记3:事务、锁定和并发
  2. TCP 和 UDP 在socket编程中的区别
  3. 报错解决:cannot import name 'conditional' from 'hyperas.distributions'
  4. 580显卡驱动_AMD6000系显卡终于来了!3A平台神秘加成?
  5. 51单片机模块化编程初识
  6. ATPG Practice ATPG Practice II
  7. numpy使用MKL库提升计算性能
  8. xmpp 与服务器连接并身份验证成功
  9. 智能化网络管理 为企业信息化保驾护航
  10. 改变软件开发者的形象,增加多样性
  11. php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache
  12. codeforces F.F. Teodor is not a liar! 最长不降子序列
  13. 您如何从Python的stdin中读取信息?
  14. 海致星图2022校招算法笔试题
  15. 财务有必要学python吗-一个来自35岁职场高管的忠告:Python为什么不得不学?
  16. 计算单应性矩阵 python_计算视觉——相机参数标定法
  17. 简单谈一谈git小乌龟操作
  18. 剑指 Offer 24. 反转链表java
  19. 【教程】jadx反编译工具的安装
  20. Python兼职半月赚了5570元:边学习边赚钱真的很爽!

热门文章

  1. linux下个性配置命令提示符
  2. odoo 对 many2many one2many的操作
  3. Windows2008R2自动更新造成的意外重启
  4. leetcode之Contains Duplicate
  5. 安装ESXI 5.5卡在LSI_MR3.V00解决方案
  6. mac下直接下载xcode的地址
  7. BGPVRP5.0的10条选路原则,以及NE20的IBGP负载均衡
  8. 卡通版三十六计(超级搞笑)
  9. java linux ifstat,ifstat命令
  10. js 自动分配金额_深入解析Node.js事件循环工作机制