2017杭电ACM集训队单人排位赛 - 6

2017杭电ACM集训队单人排位赛 - 6

排名10001001100210031004100510061007100810091010
591XX11XX01XX

1003 bx回文

dp[i]表示到串长度为i时的最大愉悦值
枚举以i为回文串中心,串为奇数时候,为中心,偶数时,为偏左部分的中心点.

dp[i+k] = max(dp[i-k]+a[2*k+1]);
dp[i+k+1] = max(dp[i-k]+a[2*k]);

多组样例注意初始化,这题有一个坑点,串长度不是n。


1007 bx值

思路反过来考虑,求某个数字的贡献,则求出总的情况数-某个数字贡献的情况。

如: 3 1 4 2

数字2不贡献的情况就是包含序列 1 4 2的所有子串。


1008 对抗女巫的魔法碎片

对c-b从小到大排序,用贪心的方法二分找到恰好大于b的a。存下所有找到的b-c。
然后从大到小使用a。
推荐用mulitset<int>ss.louwr_bound()s.erase()

vectorerase()是线性的,会TLE

  1. 对b和a从小到排序,枚举ai时,将比ai小的bj都将cj-bj丢入优先队列中,然后每次从优先队列中取出c-b最大的来。

转载于:https://www.cnblogs.com/Anani-leaf/p/7192057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值