摘要: 参考链接:http://www.cnblogs.com/gentleh/archive/2013/03/30/2989958.html题意:求一个序列的最长上升子序列,及其个数(注意:两个最长上升子序列不能共有同一个数,才能算两个)思路:用dp+最大流来求,首先用两次循环dp求出最长上升子序列的长度ans,然后就是建图了,可以选择源点为0, 由于数列中的每一个数只能使用一次,构图的时候需要拆点。若有n个数,则拆成2 * n个点,构造源点s=0和汇点t=2*n+1, 将每个点(i)都和自己拆出来的点(i+n)连边,将源点和dp[i]=1的点连边,将dp[i]=ans的点与汇点连边, ... 阅读全文
posted @ 2014-03-22 12:52 辰曦~文若 阅读(361) 评论(0) 推荐(0)