子序列

题目链接:https://www.luogu.org/problemnew/show/P1410

吐槽:

这道题做得我心累

本来想好好练一练dp

刷刷水题来练练手感

于是乎打开了(普及+/提高)的这道题

然后就。。。

再也不相信洛谷的难度评价了QAQ

题目大意

判断一个长度为2n数列

是否能拆成

两个长度为n的

严格上升的子序列

题解

又是一个神奇的状态QAQ

设f[i][j]表示

到了第i个数,

第1个子序列有j个数

第2个子序列的最大(最靠后)的数为f[i][j]

很怪很怪的啊

然后考虑转移

因为要考虑到一些不合法的转移

所以我们从前往后转

当a[i]<a[i+1]时,

可以把它加到第1个子序列

于是第2个子序列没动

所以f[i+1][j+1]=f[i][j]

当f[i][j]<a[i+1]时

可以把它加到第二个队列

怎么加呢?

转移到f[i+1][j]?

不对呀。

可以考虑把队列1,2颠倒

那么f[i+1][j]就变成了f[i+1][i+1-j]

然后转移即可

代码

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#define rg register int
#define ll long long
#define RG register
#define il inline
using namespace std; il int gi()
{
rg x=0,o=0;RG char ch=getchar();
while(ch!='-'&&(ch<'0'||'9'<ch)) ch=getchar();
if(ch=='-') o=1,ch=getchar();
while('0'<=ch&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
return o?-x:x;
} int n,a[2001],f[2001][2001];
// f[i][j]表示 到了第i个,第一个队有j个,第二个队最后面那个数的大小 #define INF 2147483647
#define Getmin(a,b) (a)=(a)>(b)?(b):(a)
#define YES puts("Yes!")
#define NO puts("No!") int main() { while(~scanf("%d",&n))
{
if(!n) {puts("No!");continue;} for(rg i=1;i<=n;++i) a[i]=gi(); for(rg i=1;i<=n;++i)
for(rg j=0;j<=i;++j)
f[i][j]=INF; f[1][1]=-INF; //把a[1]加到第1个队伍中 for(rg i=1;i<=n;++i)
for(rg j=1;j<=i;++j)
if(f[i][j]!=INF)
{
if(a[i]<a[i+1]) Getmin(f[i+1][j+1],f[i][j]);
if(f[i][j]<a[i+1]) Getmin(f[i+1][i+1-j],a[i]);
} f[n][n/2]==INF?NO:YES;
} return 0;
}

(luogu P1410)子序列 [TPLY]的更多相关文章

  1. Luogu P1410 子序列

    题目大意: 给定一个长度为\(N\)(\(N\)为偶数)的序列,] 问能否将其划分为两个长度为\(\frac{N}{2}\)的严格递增子序列, 输入一共有\(50\)组数据,每组数据保证\(N \le ...

  2. 【Luogu】P1410子序列(DP)

    题目链接 我DP是真的菜啊啊啊啊啊! f[i][j]表示考虑前i个数,有i-j+1个数组成一个上升子序列,且不以i结尾的尾端最小值. 设a为j个数组成的序列,且以i结尾:b为i-j+1个数组成的序列, ...

  3. 洛谷P1410 子序列

    题目描述 给定一个长度为N(N为偶数)的序列,问能否将其划分为两个长度为N/2的严格递增子序列, 输入输出格式 输入格式: 若干行,每行表示一组数据.对于每组数据,首先输入一个整数N,表示序列的长度. ...

  4. (luogu P1594)护卫队[TPLY]

    (luogu P1594) 护卫队 题目链接 https://www.luogu.org/problemnew/show/P1594 很好的一个模型 题目大意 有一个有序的车队,要求将其分成若干段,每 ...

  5. [Luogu 1410]子序列

    Description 给定一个长度为N(N为偶数)的序列,问能否将其划分为两个长度为N/2的严格递增子序列, Input 若干行,每行表示一组数据.对于每组数据,首先输入一个整数N,表示序列的长度. ...

  6. P1410 子序列 (动态规划)

    题目描述 给定一个长度为N(N为偶数)的序列,问能否将其划分为两个长度为N/2的严格递增子序列. 输入输出格式 输入格式: 若干行,每行表示一组数据.对于每组数据,首先输入一个整数N,表示序列的长度. ...

  7. P1410 子序列

    题目描述 给定一个长度为N(N为偶数)的序列,问能否将其划分为两个长度为N/2的严格递增子序列, 输入输出格式 输入格式: 若干行,每行表示一组数据.对于每组数据,首先输入一个整数N,表示序列的长度. ...

  8. 落谷 P1410 子序列

    题目链接. Discription 给定长度为 \(n\) 的序列 \(A\)(\(n\) 为偶数),判断是否能将其划分为两个长度为 \(\dfrac{N}{2}\) 的严格递增子序列. Soluti ...

  9. 洛谷 P1410 子序列(DP)

    这题的题解的贪心都是错误的...正解应该是个DP 考虑有哪些有关的条件:两个序列的当前长度, 两个序列的末尾数, 把这些都压进状态显然是会GG的 考虑两个长度加起来那一位的数一定是其中一个序列的末尾, ...

随机推荐

  1. open-falcon-agent插件使用

    说明 Plugin可以看做是对agent功能的扩充.使用插件可以对采集脚本进行统一管理,方便定制修改,也可以免去在crontab中添加计划任务. 开启plugin功能 # 修改agent配置文件 &q ...

  2. ThreadLocal 简述

    ThreadLocal的理解 Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量.因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们 ...

  3. nodejs开启服务器端口

    var http = require('http'); var server = http.createServer(function(req, res) { res.writeHead(200, { ...

  4. Visual Studio 2017 Enterprise 发布 15.4 版本,离线安装包百度网盘下载。

    Visual Studio 2017 于2017年10月13日发布 15.4 版本.该版本包含多项生产力改进,支持 .NET Standard 2.0 ,并且可以开启 Xamarin Live Pla ...

  5. CentOS 6安装Oracle报错解决方案

    1. Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-05-23_04-18-48AM. Please ...

  6. 阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了

    1.源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美.提高核心竞争力. 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华.知其然,并知其所以然.把知识变成自 ...

  7. D. Number of Parallelograms

    D. Number of Parallelograms 原题链接 time limit per test 4 seconds memory limit per test 256 megabytes Y ...

  8. HDU - 2112 HDU Today Dijkstra

    注意: 1.去重边 2.终点和起点一样,应当输出0 3.是无向图 AC代码 #include <cstdio> #include <cmath> #include <al ...

  9. 【SSH框架】系列之 Spring 整合 Hibernate 框架

    1.SSH 三大框架整合原理 Spring 与 Struts2 的整合就是将 Action 对象交给 Spring 容器来负责创建. Spring 与 Hibernate 的整合就是将 Session ...

  10. sed 命令多行到多行的定位方式

    本文提要: sed 命令定位方式的分类 着重对 /pattern/,/pattern/ 的定位方式进行阐述 定位方式分类 总体上,只需要分为两类,即:x 和 x,y .如果在范围后加 ! 则表示取补集 ...