USACO 4.3解题报告

Buy Low, Buy Lower

给出一个数列,求其中最长的降低子序列以及构成该长度的方法数。(须要使用高精度)web

在数列末尾增长一个0
第一问,f[i]表示以a[i]为结尾的最长降低子序列的长度,则:
f[i]=max{f[j]}+1(jsvg

Street Race

给出一张有向图,有源点和汇点,该图知足以下条件,称为“良好的跑道”:
每个点均可以由源点到达;
任意一个点均可以到汇点;
汇点不通向任何点。
求:
(1)从源点出发到达汇点必须通过的点
(2)“中间路口”,即原图能够被该点分为两部分,两部分均为“良好的跑道”,且该点分别为这两部分的汇点和源点的点。xml

第一问实质上是在求有向图的割点,枚举每个点,将该点删去后对原图进行广度优先搜索,若源点没法到达汇点,则为割点;
第二问,首先从源点出发进行深度优先搜索,对图中的点进行分层(相似于Dinic)。本问中点必定知足第一问的条件,所以枚举第一问中获得的点,从该点开始进行深度优先搜索,若能到达层数小于该点的点,则该点不符合条件;不然将其加入答案。it


Letter Game

给出一些可使用的字母及每一个字母对应的分值,并给出一些词语,找出得分最高的词语或词对。搜索

首先对可以使用的字母统计每一个字母的出现次数,而后在读入单词的过程当中统计每一个单词中每一个字母的数量及该单词的得分,若该单词中某个字母的数量大于可用数量,则删除该单词。在剩下的单词中进行枚举,找出得分最高的单词或词对便可。webkit