小a与星际探索---DP
题目描述
同时小a的飞船还有一个耐久度tt,初始时为1号点的能量指数,若小a前往星球jj,那么飞船的耐久度会变为t⊕pjt⊕pj(即tt异或pjpj,关于其定义请自行百度)
小a想知道到达nn号星球时耐久度最大为多少
输入描述:
第一行一个整数nn,表示星球数
接下来一行有nn个整数,第ii个整数表示pipi
输出描述:
一个整数表示到达nn号星球时最大的耐久度
若不能到达nn号星球或到达时的最大耐久度为00则输出−1−1
备注:
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 = ; i <= n; i++)
scanf("%d", &p[i]);
memset(dp, , sizeof(dp));
dp[] = p[];
for (int i = ; i <= n; i++)
{
int mx = ;
for (int j = ; j<i; j++)
{
if (dp[j] == )
continue;
if (p[j]>p[i])
mx = max(dp[j] ^ p[i], mx);
}
dp[i] = mx;
}
if (dp[n] == )
printf("-1\n");
else
printf("%d\n", dp[n]);
return ;
}
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[],vis[];//dp[i]储存的是耐久度为i的能量指数,vis[i]起标记作用
int p[];//能量值
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&p[i]);
}
memset(vis,,sizeof(vis));
vis[p[]^p[n]]=;
dp[p[]^p[n]]=p[];
if(p[n]>=p[])
printf("-1\n");
else
{
for(int i=;i<n;i++)
{
if(p[]>p[i]&&p[i]>p[n])
{
for(int j=;j>=;j--)
{
if(vis[j^p[i]]==&&p[i]<dp[j^p[i]])//更新路径
{
vis[j]=;
dp[j]=p[i];
} }
}
}
int mx=-;
for(int i=;i>=;i--)//i代表耐久度值,找到最大就退出
{
if(vis[i])
{
mx=i;
break;
}
}
printf("%d\n", mx);
}
return ;
}
小a与星际探索---DP的更多相关文章
- 牛客 小a与星际探索
链接:https://ac.nowcoder.com/acm/contest/317/C来源:牛客网 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n号星球.其中每个星球有一个能量指 ...
- 牛客 小a与星际探索 bfs
链接:https://ac.nowcoder.com/acm/contest/317/C?&headNav=acm来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...
- 小a与星际探索
链接:https://ac.nowcoder.com/acm/contest/317/C来源:牛客网 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从11号星球出发前往nn号星球.其中每个星球有一个能 ...
- BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP
BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀 ...
- 小明的密码-初级DP解法
#include #include #include using namespace std; int visited[5][20][9009];// 访问情况 int dp[5][20][9009] ...
- 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集
4316: 小C的独立集 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 57 Solved: 41[Submit][Status][Discuss] ...
- bzoj 4031: [HEOI2015]小Z的房间 轮廓线dp
4031: [HEOI2015]小Z的房间 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 98 Solved: 29[Submit][Status] ...
- scauoj 18025 小明的密码 数位DP
18025 小明的密码 时间限制:4000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description 小明的密码由N(1<=N& ...
- [UOJ422][集训队作业2018]小Z的礼物——轮廓线DP+min-max容斥
题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq ...
随机推荐
- Visual Studio 2010调试本地 IIS 站点
点击vs的Debug-Attach to Process选中 w3wp.exe,然后点击Attach, vs便进入debug模式.
- javascript总结4:javascript常见变量
1 javascript变量 定义:变量在计算机中,是用于存储信息的"容器". 2 使用方法: 2-1 定义变量: var n1; 2-2 变量赋值: var n2=23.45; ...
- Newtonsoft.Json.Linq
var json = "{\"name\":\"ok1\",\"sex\":\"man\"}"; / ...
- android获取USB设备的名称
1.注释内 .是三星设备可能不支持,需要更换的代码. 2.mUsbManager.是getSystemService(Context.USB_SERVICE)获的. 3. 从stackoverflow ...
- c#后台弹出框
ClientScript.RegisterStartupScript(this.GetType(), "message", "<script>alert('提 ...
- selenium面试题
selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断. # 判断元素是否存在 try: dr.find_elem ...
- Druid连接池默认配置和坑
一.公司默认配置 ds_0: !!com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver url: ...
- linux下vim python代码自动补全
一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.p ...
- 在win7系统上搭建django+oracle 11g时,注意事项
在win7系统上搭建django+oracle 11g时,注意事项[示例用的是python 2.7]: 重要:python.oracle.oracle client这三个的OS bit 一定一定要相同 ...
- 洛谷P2775 机器人路径规划问题
传送门 题解 至今没看懂这深搜怎么写的…… //minamoto #include<iostream> #include<cstdio> #include<cstring ...