• 【网络流24题】最长递增子序列问题(最多不相交路径)


    题目描述

    «问题描述:

    给定正整数序列x1,...,xn 。

    (1)计算其最长递增子序列的长度s。

    (2)计算从给定的序列中最多可取出多少个长度为s的递增子序列。

    (3)如果允许在取出的序列中多次使用x1和xn,则从给定序列中最多可取出多少个长度为s的递增子序列。

    «编程任务:

    设计有效算法完成(1)(2)(3)提出的计算任务。

    输入输出格式

    输入格式:

    第1 行有1个正整数n,表示给定序列的长度。接下来的1 行有n个正整数n:x1, ..., xn。

    输出格式:

    第1 行是最长递增子序列的长度s。第2行是可取出的长度为s 的递增子序列个数。第3行是允许在取出的序列中多次使用x1和xn时可取出的长度为s 的递增子序列个数。 

    输入输出样例

    输入样例#1:
    4
    3 6 2 5
    输出样例#1:
    2
    2
    3

    第一问是十分简单的,简单的dp,设为f数组

    这时的f[i]表示到i可以得到的最大长度。(就是在维护那个单调栈中该数时第几个位置)

    如3 6 2 7

    3 是第一个位置 

    6 是第二个位置

    2 是代替了3 第一个位置

    7 是第三个位置

    所以f数组为 1 2 1 3

    这个意思

    对于样例 3 6 2 5

    对于第二问如何建图呢?

    将每个点拆开分成两个点,a.st,a.ed,其间连一条流量为一的边,限制了这个点只能经过一次。

    这个图即可。

    对于询问三,更简单,

    将起点的流量与终点流量改为无穷大即可。

  • 相关阅读:
    laravel5.1--数据库操作
    coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解
    apache配置虚拟主机
    PHP下利用PHPMailer
    linux中编译安装Apache、PHP、MySQL(上)
    MariaDB配置远程访问权限
    虚拟主机的配置
    PHP–图像XX因其本身有错无法显示
    apache重写中匹配?即查询时用到的字符
    nginx反向代理时的情况分析
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/7927543.html
Copyright © 2020-2023  润新知