//
// Created by snnnow on 2020/4/13.
//
//这是dp 问题的基础题
//
//最长不下降
//(导弹拦截是其例题)
//那这篇文章是讲啥呢,
// 主要是吧,这个题是用了二维数组,
//而导弹当时是用了三个一维数组
//其实本质上是一样的
//(有本事干结构体啊!QAQ[手动狗头]) //不多说了,ans[i][1]是原数
//ans[i][2]是该项的最长
//ans[i][3]是指向下一个(下一个值的位置)
//开始咯!
#include <iostream>
using namespace std;
int main(){
int ans[][];//虽然第二维我们只要三个数,但是还是最好开大一点
int n;
cin>>n;
for (int i = ; i <= n ; ++i) {
cin>>ans[i][];
ans[i][]=;
ans[i][]=; }
for (int j = n-; j >= ; --j) {
int k=;//注意一个问题,k和p是每次i需要更新的,所以一定放在这个循环这里
int p=;
for (int i = j+; i <= n ; ++i) { if(ans[j][] >= ans[i][] && ans[j][] > k){//k记录的就是所有的ans[j][2]中最大的
k = ans[j][]; p = j;
}
if(k>){
ans[i][] = p;//p就是个"指针",ans[j][3]存放的就是个位置
ans[i][] = k+;
} } }
//挨个比较一下ans[i][2]就可以找到最大的,注意要找个变量标记出来啊
int mark=;
for(int i=;i <= n;i++){
if(ans[i][] >= ans[mark][]){
mark = i;//这里不是排序,不需要双重循环,只需要找一个东西一直比较着就行
}
}
cout << ans[mark][]<<endl;
while(mark!=){
cout<<" "<<ans[mark][];
mark = ans[mark][];
}
return ;
}

这次,把第一个逆序循环--j写成了++j..直接炸了

然后把k的定义写错了位置(k是跟随每一个ans[i]更新的)

太傻了,小白还要继续加油!

dp最长不下降序列的更多相关文章

  1. 算法复习——求最长不下降序列长度(dp算法)

    题目: 题目背景 161114-练习-DAY1-AHSDFZ T2 题目描述 有 N 辆列车,标记为 1,2,3,…,N.它们按照一定的次序进站,站台共有 K 个轨道,轨道遵从先进先出的原则.列车进入 ...

  2. 问题 B: 【例9.3】求最长不下降序列(基础dp)

    问题 B: [例9.3]求最长不下降序列 时间限制: 1 Sec  内存限制: 128 MB提交: 318  解决: 118[提交][状态][讨论版][命题人:quanxing] 题目描述 设有由n( ...

  3. JDOJ 1929: 求最长不下降序列长度

    JDOJ 1929: 求最长不下降序列长度 JDOJ传送门 Description 设有一个正整数的序列:b1,b2,-,bn,对于下标i1<i2<-<im,若有bi1≤bi2≤-≤ ...

  4. [BZOJ1852] [MexicoOI06]最长不下降序列

    [BZOJ1852] [MexicoOI06]最长不下降序列 额我也不知道是不是水过去的...和网上的另一篇题解对拍过了,但是拍不出来... 经过和神仙的讨论基本可以确定是对的了 考虑如下贪心 (我将 ...

  5. 最长不下降序列nlogn算法

    显然n方算法在比赛中是没有什么用的(不会这么容易就过的),所以nlogn的算法尤为重要. 分析: 开2个数组,一个a记原数,f[k]表示长度为f的不下降子序列末尾元素的最小值,tot表示当前已知的最长 ...

  6. 九度OJ 1131:合唱队形 (DP、最长上升下降序列)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2865 解决:881 题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形. ...

  7. dp入门:最长不下降序列

    #include "bits/stdc++.h" using namespace std; ],dp[]; int main() { int n; cin >> n; ...

  8. BZOJ 1852 [MexicoOI06]最长不下降序列(贪心+DP+线段树+离散化)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1852 [题目大意] 给你N对数A1,B1……An,Bn.要求你从中找出最多的对, 把它 ...

  9. dp:最长非递减序列

    #include <iostream.h> void main() { int i,j,a[14]={5,6,-6,-1,9,10,-5,-3,16,4,3,-4,-3,5}; int d ...

随机推荐

  1. DTD约束和Schema约束

    DTD约束 什么是DTD? DTD(Document Type Definition),文档类型定义,用来约束XML文档.规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等. DTD约束长什 ...

  2. Selenium之浏览器驱动下载和配置使用

    浏览器驱动下载 Chrome浏览器驱动:chromedriver , taobao备用地址 Firefox浏览器驱动:geckodriver Edge浏览器驱动:MicrosoftWebDriver ...

  3. Ocelot网关+IdentityServer4实现API权限认证

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  4. mysql中给查询结果添加序号

    当我们想为查询结果添加序号的时候可以这样写 SELECT @rowid:=@rowid+1 allid, pan_number, receive_person,time_note, url,unit_ ...

  5. Django---进阶11

    目录 django中间件 如何自定义中间件 csrf跨站请求伪造 如何符合校验 csrf相关装饰器 补充知识点 重要思想 作业 django中间件 """ django中 ...

  6. day46 作业

    # 班级表 create table class( cid int primary key auto_increment, caption char(16) ); # 学生表 create table ...

  7. MYSQL 之 JDBC(十三):处理事务

    所谓事务是指:一组逻辑操作单元,使数据从一种状态变换到另一种状态. 事务的ACID属性 原子性,Atomicity:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性,Con ...

  8. MYSQL 之 JDBC(八):增删改查(六)ReflectionUtils

    这里在网上找了一份ReflectionUtils package com.litian.jdbc; /** * @author: Li Tian * @contact: litian_cup@163. ...

  9. Flask 基础组件(十):中间件

    from flask import Flask, flash, redirect, render_template, request app = Flask(__name__) app.secret_ ...

  10. Flask 基础组件(六):Session

    除请求对象之外,还有一个 session 对象.它允许你在不同请求间存储特定用户的信息.它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥. 设 ...