两日总结七

杭电杯比赛一场:

 这一场比较简单,有很多题目可以写,但是有些没有写出来。

后面是补题部分:

 对于Link with Bracket Sequence II这个题目:Problem - 7174

是一个区间DP,就是在转移的时候需要用另外一个数组来统计转移的情况。

对于Link is as bear:Problem - 7184

不难猜出题目就是要在给定序列中,选出一些数得到最大异或值即可,证明也非常简单。(111可以转换110, 011, 101, 001, 100, 000,010等状态说明你可以选择将任意一位变成0,也就是选出不要的数变成0,留下的数可以异或得到最大值。这就变成了一个线性基问题。)

 线性基的学习了解:就是维护一个可以通过该集合中的异或得到原序列任何数的最短集合。如此的话对于原序列的数贡献也就会在线性基里面的体现,最后只要贪心优先高位选取就可以得到最大值。

对于Link with Running:Problem - 7175

里面考了图论大半的知识,代码也是非常多。是一个比较好的题目吧!

题意:就是要从起点1走到n,花费体力W最小的情况下得到最多的p值。输出minW和maxP

理解:首先需要体力最少,那我们直接以体力换花费作为边权,然后一遍最短路即可得到答案。

然后就是在最短路的基础之上再去跑一遍以P为权值的最长路就行了 。但是这里有一个问题,就是体力花费为0的时候,P会出现正环情况,此时就会无限增大。因此就需要出去正环,直接使用TarJan算法进行缩点,讲一个环缩成一个点,最后得到一张DAG图,然后跑一遍最长路即可。

三幅图存下每个操作后的用来新建一个图。

1.最短路

 2.创建最短路图

 3.TarJan缩点然后创建第三幅DAG图

 4.在e3DAG最短图里面跑最长路得到答案。 

总之这个题目就是几种算法的套用,就是可能会忽略,W=0是的环,没有缩点。

其他的刷题:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值