题目描述

小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球。其中每个星球有一个能量指数pp。星球ii能到达星球jj当且仅当pi>pjpi>pj。
同时小a的飞船还有一个耐久度tt,初始时为1号点的能量指数,若小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⩽3000
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
#define ll long long
#define maxn 3005
int p[maxn];
int dp[maxn];
int main()
{int n;scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &p[i]);memset(dp, 0, sizeof(dp));dp[1] = p[1];for (int i = 2; i <= n; i++){int mx = 0;for (int j = 1; j<i; j++){if (dp[j] == 0)continue;if (p[j]>p[i])mx = max(dp[j] ^ p[i], mx);}dp[i] = mx;}if (dp[n] == 0)printf("-1\n");elseprintf("%d\n", dp[n]);return 0;
}

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[5000],vis[5000];//dp[i]储存的是耐久度为i的能量指数,vis[i]起标记作用
int p[4000];//能量值
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&p[i]);}memset(vis,0,sizeof(vis));vis[p[1]^p[n]]=1;dp[p[1]^p[n]]=p[1];if(p[n]>=p[1])printf("-1\n");else{for(int i=2;i<n;i++){if(p[1]>p[i]&&p[i]>p[n]){for(int j=5000;j>=0;j--){if(vis[j^p[i]]==1&&p[i]<dp[j^p[i]])//更新路径
          {vis[j]=1;dp[j]=p[i];}}}}int mx=-1;for(int i=5000;i>=1;i--)//i代表耐久度值,找到最大就退出
    {if(vis[i]){mx=i;break;}}printf("%d\n", mx);}return 0;
}

转载于:https://www.cnblogs.com/-citywall123/p/10311409.html

小a与星际探索---DP相关推荐

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

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

  2. 牛客寒假算法基础集训营1 C. 小a与星际探索(dp或者各种姿势)

    题目链接:https://ac.nowcoder.com/acm/contest/317/C        这道题本质上是一道dp题,但是dijkstra或者搜索都可以过,没什么说的,只贴dp和搜索的 ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. 牛客寒假算法基础集训营1 - C - 小a与星际探索(bfs || 暴力)

    题目链接:https://ac.nowcoder.com/acm/contest/317/C 思路1:直接bfs. #include<bits/stdc++.h> using namesp ...

最新文章

  1. 给QTreeWidget添加右键菜单功能
  2. Jmeter使用基础笔记-写一个http请求
  3. Spring学习笔记15--注解Bean
  4. c语言x的2取模_c语言如何取模运算
  5. ssh、私钥、密钥理解
  6. linux /dev
  7. python serial_python_serial
  8. PHP 命令行之-F (--process-file) 对每个输入行都执行 PHP 文件 (PHP 5 新加)
  9. php 自学提升进阶路线,瓶颈
  10. C语言自动处理异常,C语言中异常错误处理机制浅析
  11. 自己动手搭建免费VoIP服务器
  12. html网页在线加密解密工具源码
  13. 艾司博讯:拼多多店铺要不要一直上新?上新有用吗?
  14. 图灵测试其实已经过时了
  15. vue自动计算日期天数
  16. snapper命令技巧
  17. DataNucleus之JDO操作示例
  18. 用PyQt5+Caffe+Opencv搭建一个人脸识别登录界面
  19. 《Artificial Intelligence in Finance》(AI金融, by Yves Hilpisch)台湾谢承熹Chenghsi Hsieh老师中文讲解
  20. Java String 类和正则表达式

热门文章

  1. The history and design philosophy of Spring
  2. Win 10 Revit 2019 安装过程,亲自踩的一遍坑,有你想要的细节
  3. Linux 下安装nodejs
  4. ant编译无法依赖rt.jar
  5. luoguP2701 [USACO5.3]巨大的牛棚Big Barn(极大子矩阵)
  6. Vijos1775 CodeVS1174 NOIP2009 靶形数独
  7. smarty模板基础知识
  8. Java面向对象16种原则
  9. 解决Windows和Ubuntu时间不一致的问题
  10. (123)FPGA面试题-介绍低速接口(UART、IIC、SPI),SPI有几根线,每根线的作用?(三)