链接P4728 [HNOI2009]双递增序列

  • 设\(f_{i,j}\)表示当前考虑第\(i\)个数,上一步是\(a_{i-1}\)接在后面的序列一共取了\(j\)个数,另外一个序列的末尾最小值。
  • 转移:如果\(a_i<a_{i-1}\),那么上一步是\(a_{i-1}\)接在后面的序列可以继续接,即\(f_{i,j}=f_{i-1,j-1}\)
  • 否则若\(a_i>f_{i-1,i-j}\),也就是在\(i-1\)这个位置的时候,另外一个序列的结尾要比当前小,那么有\(f_{i,j}=a_{i-1}\),也就是另一个序列和这个序列交换位置,也就是原来的另一个序列接上了\(a_i\),那么本来接上\(a_{i-1}\)的序列就要变成值域表示,而现在的序列就变成下标表示了。
  • 所以另外一个序列的末尾最小值就是上一步接在\(a_{i-1}\)的序列。
#include<bits/stdc++.h>
#define R register int
#define db double
using namespace std;
const int N=2501;
int q,n,w[N],f[N][N];
int gi(){R x=0,k=1;char c=getchar();while(c!='-'&&(c<'0'||c>'9'))c=getchar();if(c=='-')k=-1,c=getchar();while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar(); return x*k;
}
void sol(){n=gi();for(R i=1;i<=n;++i)w[i]=gi();memset(f,63,sizeof(f));f[1][0]=w[1],f[1][1]=0;for(R i=2;i<=n;++i){f[i][0]=w[i];for(R j=1;j<=i&&j<=n/2;++j){if(w[i]>w[i-1])f[i][j]=min(f[i][j],f[i-1][j-1]);if(i>=j&&w[i]>f[i-1][i-j])f[i][j]=min(f[i][j],w[i-1]);}}                  if(f[n][n/2]==f[n+1][0])puts("No!");else puts("Yes!");
}
int main(){q=gi();while(q--)sol();return 0;
}

转载于:https://www.cnblogs.com/Tyher/p/9853296.html

P4728 [HNOI2009]双递增序列相关推荐

  1. leetcode--最长连续递增序列--python

    文章目录 题目 题目详情 示例 解题思路 思路 代码 运行结果 最佳方案 题目 题目详情 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 输入: [1,3,5,4,7] 输出: 3 解 ...

  2. 扩增子分析解读1质控,实验设计,双端序列合并

    写在前面 之前发布的<扩增子图表解读>系列,相信很多朋友都看过了(链接直达7月文章目录). 这些内容的初衷是写给刚进实验室的学生读,加速大家对同行文章的解读能力.如果连同行的结果都看不懂, ...

  3. 最长递增子序列 最长连续递增序列

    引言 这两道题有很大的相似性,在这里主要的地方就是循环的设置,不仅仅适用于这两道题,在很多类似的题目中都可以用到,要学会相应的方法才行: 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格 ...

  4. Leetcode 674.最长递增序列

    最长递增序列 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3 ...

  5. 【小米校招笔试】在Excel中,列的名称是这样一个递增序列:seq={A、B、C、... Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...

    2016年小米校招笔试第一题(成都站) 1 在Excel中,列的名称是这样一个递增序列:seq={A.B.C....  Z.AA.AB.AC.... AZ.BA.BB.BC.... BZ.CA.... ...

  6. 7-4 递增序列 (15 分)

    7-4 递增序列 (15 分) 递增序列指的是,在序列中,对于任何两个相邻的数b[i]和bi+1,总有b[i]<b[i+1].现在,给你一个序列b[1],b[2],-b[n],和一个正整数d,每 ...

  7. [数据库] Navicat for Oracle设置唯一性和递增序列实验

    这篇文章主要讲述Navicat for Oracle设置唯一性约束和设置某字段为递增序列.文章主要以图文为主,虽然都是非常简单基础的文章,但还是希望对你有所帮助. 推荐前一篇文章:[数据库] Navi ...

  8. 2019\National _C_C++_C\试题 B: 递增序列

    [问题描述] 对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  9. 每天一道LeetCode-----某个数在递增序列第一次和最后一次出现的位置

    Search for a Range 原题链接Search for a Range 给定一个递增序列和一个值,找到该值在序列中出现的范围,实际上就是找到该值第一次出现和最后一次出现的位置.如果没有,返 ...

最新文章

  1. 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
  2. android读取短信内容简书,Android 获取App信息
  3. ITK:创建高斯内核
  4. 2008服务器维护,Windows 2008 R2 服务器维护
  5. 二叉查找树的类模板实现
  6. 当区块链遇到零知识证明 1
  7. .gitignore文件不生效解决方法
  8. Code[VS]1159 最大全0子矩阵
  9. 2.4G无线音箱四层PCB设计学习(一)
  10. 注册Gmail邮箱需要手机验证
  11. android 百度地图
  12. Unity Shader标准光照模型——高光反射
  13. flatten层的作用
  14. 2021年“深育杯“网络安全大赛Writeup
  15. GitHub中的repositories如何删除?
  16. 数组五种查询条件方法(find、findindex、indexOf、lastindexOf 、includes)
  17. UCINET入门案例
  18. 广东东软学院计算机一级考试,广东东软学院教务管理系统入口https://www.nuit.edu.cn/...
  19. 【狮子数学】05极限的计算——补充问题
  20. 文档管理系统的核心技术与难点

热门文章

  1. 手动清除后门程序Iexplores.exe
  2. TEAM WORK 認清自己的角色
  3. 使用LinkedBlockingQueue来实现生产者消费者的例子
  4. [阿里云]I+的一些探索
  5. swiper轮播器的常用案例分析(swiper hover停止mouseover停止)
  6. [Objective-c 基础 - 2.1] 封装
  7. 例5-17和例5-18
  8. 这是个将近3万人点赞,涉及9大模块,专为程序员准备的面试宝典
  9. NVelocity的宏使用
  10. 电商大战折射商业伦理缺失形势探讨