【题目链接】

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4959

【题目大意】

  给出一些飞船的位置,每艘飞船用绳子和序号相邻的飞船相连,现在去掉一些飞船,使得飞船之间的绳子不交叉。

【题解】

  绳子不交叉的情况就是可以有两条不交叉的路线来回,我们将位置序列转化为以位置为下标的编号序列,那么题目就转化为求先增后减的最长序列,那么,我们dp正反各求一遍LIS,保存在每个位置,将每个位置两次的答案求和,取最大值就是答案了。

【代码】

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=200005;
int n,x,a[N],c[N],up[N],down[N];
int add(int x,int num){while(x<N)c[x]=max(c[x],num),x+=x&-x;}
int query(int x){int s=0;while(x)s=max(s,c[x]),x-=x&-x;return s;}
int main(){while(~scanf("%d",&n)){for(int i=1;i<=n;i++)scanf("%d",&x),a[x]=i;memset(c,0,sizeof(c));for(int i=1;i<=n;i++)add(a[i],up[i]=query(a[i])+1);memset(c,0,sizeof(c));for(int i=n;i;i--)add(a[i],down[i]=query(a[i])+1);int ans=0;for(int i=1;i<=n;i++)ans=max(up[i]+down[i]-1,ans);printf("%d\n",ans);}return 0;
}

  

转载于:https://www.cnblogs.com/forever97/p/uvalive6947.html

UVALive 6947 Improvements(DP+树状数组)相关推荐

  1. 树形DP+树状数组 HDU 5877 Weak Pair

    1 //树形DP+树状数组 HDU 5877 Weak Pair 2 // 思路:用树状数组每次加k/a[i],每个节点ans+=Sum(a[i]) 表示每次加大于等于a[i]的值 3 // 这道题要 ...

  2. 小魂和他的数列(dp+树状数组优化)

    链接:https://ac.nowcoder.com/acm/contest/3566/C 来源:牛客网 Sometimes, even if you know how something's goi ...

  3. 牛客多校1 - Infinite Tree(虚树+换根dp+树状数组)

    题目链接:点击查看 题目大意:给出一个无穷个节点的树,对于每个大于 1 的点 i 来说,可以向点 i / minvid[ i ] 连边,这里的 mindiv[ x ] 表示的是 x 的最小质因数,现在 ...

  4. dp 树状数组 逆序元组

    wmq的队伍 发布时间: 2017年4月9日 17:06   最后更新: 2017年4月9日 17:07   时间限制: 2000ms   内存限制: 512M 描述 交大上课需要打卡,于是在上课前的 ...

  5. BZOJ.4553.[HEOI2016TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)

    题目链接:BZOJ 洛谷 \(O(n^2)\)DP很好写,对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]=d[j]+1\) for(int j=1; j<i; ++j)if(a[j ...

  6. HDU 2836 Traversal 简单DP + 树状数组

    题意:给你一个序列,问相邻两数高度差绝对值小于等于H的子序列有多少个. dp[i]表示以i为结尾的子序列有多少,易知状态转移方程为:dp[i] = sum( dp[j] ) + 1;( abs( he ...

  7. Codeforces 1096F(dp + 树状数组)

    题目链接 题意: 对于长度为$n$的排列,在已知一些位的前提下求逆序对的期望 思路: 将答案分为$3$部分 $1.$$-1$与$-1$之间对答案的贡献.由于逆序对考虑的是数字之间的大小关系,故假设$- ...

  8. 51nod 1680区间求和 (dp+树状数组/线段树)

    不妨考虑已知一个区间[l,r]的k=1.k=2....k=r-l+1这些数的答案ans(只是这一个区间,不包含子区间) 那么如果加入一个新的数字a[i](i = r+1) 则新区间[l, i]的答案为 ...

  9. bzoj 2131: 免费的馅饼【dp+树状数组】

    简单粗暴的dp应该是把馅饼按时间排序然后设f[i]为i接到馅饼能获得的最大代价,转移是f[i]=max(f[j])+v[i],t[j]<=t[i],2t[i]-2t[j]>=abs(p[i ...

  10. luogu P2344 奶牛抗议 DP 树状数组 离散化

    P2344 奶牛抗议 最新讨论 暂时没有讨论 题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在 ...

最新文章

  1. BAT数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!
  2. 史上曾被认为不可能的十大科学难题全被实现
  3. HBase 与Hive数据交互整合过程详解
  4. GoogleAppEngine是什么?
  5. ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
  6. Android工程师转型Java后端开发之路,自己选的路,跪着也要走下去!
  7. php隐藏IP最后位,替换手机号中间数字为*号
  8. cursor-spacing 软键盘和input的距离
  9. 3D点云语义分割认知随便写写(更新中)
  10. Python 方法调用机制
  11. google嗅探(简洁实用版)
  12. Lenovo联想键盘关闭fn功能恢复F1-F12按键
  13. 在vue中使用echarts实现飞机航线 水滴图 词云图
  14. dnf服务器系统,可以挂dnf的云服务器
  15. 轻量级web api_API接口管理,这15种开源工具助你管理API
  16. 微服务守护神-Sentinel-降级规则
  17. 2021年福建高考成绩什么时候可以查询,2021年福建高考成绩排名及成绩公布时间什么时候出来...
  18. Speed as a Habit(让速度成为一种习惯)
  19. LINUX流量控制工具 TC详解
  20. 无公网IP,外网远程连接MySQL数据库

热门文章

  1. bootstrap 栅格化布局一
  2. 小白如何进行代码调试Debug(IDEA 2023版)
  3. 【最新附安装包】SketchUp2023安装教程
  4. 权重和偏差在神经网络中起什么作用?
  5. 如何看linux服务器空间,Linux查看空间使用情况
  6. LTE-5G学习笔记30--5G NR的调制方式与解调算法
  7. 《微课实战:Camtasia Studio入门精要》——第1章 Camtasia Studio概述 1.1 Camtasia Studio基础知识...
  8. Stereo R-CNN解读
  9. PID原理和参数调试
  10. java计算机毕业设计基于springboot+vue+elementUI的在线彩妆化妆品销售店铺商城(前后端分离)