USACO 4.3解题报告

Buy Low, Buy Lower

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

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

Street Race

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

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


Letter Game

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值