这题的本体就是经典的最长非降子序列...第一问就是O(n^2)的最长降序列了...
而第二问则有技巧..首先明确的是要得到方案数..那么在dp更新最长长度时方案数要跟着传递更新..如果没有题目中所给的位置不同但序列每个数相等的序列只能算一个序列的条件...那么更新方案数是当dp更新长度时如果能更新得更长,那么就将方案数直接赋值过来..若相等则相加..
但是题目中又给出了这个条件...那么就用一个数组来记录那个数出现的最后位置...比如
3 2 1 3 2 1 6 5
前面三位可以得到最长的是3位为3 2 1方案数只有1种...继续往后扫..比如到了第6位..也是1..为了避免出现第1位,第2位,第6位组成重复的3位...那么新的数列中至少有一位是在两个1之间的..也就是第3位与第2位之间...但是这里也要注意..有些位置是更新不到...如第4位,第5位..所以要记i录下只有当这一位更新过..后面才可以根据这一位更新..这也就是为什么第3位到第6位之间的4,5位不能是用来更新6的原因..就这个数列来说...最长的就是3位..最长的方案就是前面3位组成的一种..而4,5,6位都是属于无法更新的...7,8位组成的最长也只能有2...所以如果在扫描时把出现的数的最后位置记录..就能每次只在最末尾两两相同的中间数用来更新...这样就不可能存在重复的队列了..
最后注意的是得到的方案数非常巨大...只能由大数来存储...方案数进行相加时也只能是大数加法...
Program:
分享到:
相关推荐
usaco section2.3--section5.5源程序。。。。。。。。。。。。。。。。
usaco测试数据+标程 usaco的section1到section5的所有测试数据 以及标准程序
USACO题解及中文译题1.1.1-2.4.5 题目为TXT格式文档,代码为C++语言所编写
USACO1-5单元AC的代码~ 1 Chapter1 1.1 Section 1.1 1.2 Section 1.2 1.3 Section 1.3 1.4 Section 1.4 1.5 Section 1.5 2 Chapter2 2.1 Section 2.1 2.2 Section 2.2 2.3 Section 2.3 2.4 Section 2.4 3 Chapter3 ...
这是USACO2001-2007月赛全集。 usaco是美国中学生的官方竞赛网站。是美国著名在线题库,专门为信息学竞赛选手准备。推荐直接阅读英语原文,既准确可靠又可提高英语水平。做题方式模拟正式比赛,采用标准测评机、文件...
资源包包括USACO 2001-2007年月赛的测试数据;usaco月赛十年题典(2000-2009),usaco月赛2002-2008题解。单独下载需资源分30分以上。为了方便编程爱好者,我这边统一下载打包。欢迎下载。
pku acm上的一系列usaco题目都可以在这里找到测试数据以及源代码,不过题目的名字和pku上有得有点出入,需要自己去比较一下,2002年
pku acm上的一系列usaco题目都可以在这里找到测试数据以及源代码,不过题目的名字和pku上有得有点出入,需要自己去比较一下,2001年
我的USACO题解和程序
usaco 2010-2011 nov news,喜欢usaco的朋友可以看看
USACO题解+代码+翻译,好东西,超级齐全,对大家帮助不小,特别是现在nocow挂了
usaco 合集,全部英文原题和中文译题,测试数据以及答案。还有讲解报告
usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
USACO全部题目官方分析翻译1993-1996美国计算机程序设计竞赛
ACM----USACO Training(解题博客网),提供了USACO Training解题的代码,可以参考一下
里面有usaco前几节的程序和代码,欢迎使用,希望对你有所帮主。
usaco历年测试数据
USACO题目,Greedy Gift Givers
包括USACO全部测试数据及2001-2007年度比赛测试数据