9.11ZR七连测第三测总结

个人感觉是相对而言比较对胃口的一场

但感觉比赛给的题目顺序不是特别合理

T2和T3反过来会更好一些

(希望能有360)

时间分配

6.10-6.20 看题

6.20-6.35 敲T1

6.35-6.50 想T2,一眼算阶题《***开关》(没收广告费),推细节

6.50-7.20 准备写T2 但又很纠结时间复杂度(有个4的常数),犹疑并想了想优化

7.20-7.40 敲T2

7.40-7.45 检查T2

7.45-7.55 想T3

7.55-8.07 敲T3

8.10-8.20 想明白T4怎么用manacher+贪心跑掉60

8.20-8.35 复习好manacher(总之就是一干二净)

8.35-9??.(具体没记录) 写完T4 60

9.??-9.40 写了个暴力拍了一下T2

9.40-10.00 本来想写个暴力拍3,发现暴力比正解都难写,就躺平了

题目分析

T1

贪心 价值最大的球取加上红球同个数次

T2

这不就是《***开关》吗

所以小朋友们,平时一定要好好刷题哦(大雾)

二进制枚举第一排的状态,第一排状态固定后,往下所有射击都是固定的。

写的时候很犹豫,复杂度最劣到 2 17 ∗ 1 7 2 ∗ 4 2^{17}*17^2*4 2171724

加了一个小剪枝,步数大于当前答案的时候直接return

T3

二进制的不同位数只有30个

提前预处理,扫b数组,用一个map统计每个数字对应的b的个数。

对于一个数a,和它异或出来仅有两个位置是 1 的b只有 ( n ) ( n − 1 ) 2 \frac{(n)(n-1)}{2} 2(n)(n1) 种,所以枚举这两个位置,直接和a做异或。 然后直接把答案累加上map中a异或出来的数的个数。

复杂度 O ( n ∗ l o g n ∗ 450 ) O(n*logn*450) O(nlogn450)

T4

manacher可以拿到优秀的60分

一个字符b会被改变成另一个,当且仅当,某个以a为中心的回文串以它为一个边界,以c为另一个边界,且b和c不同。

所以先跑原串,然后把对应位置标记。

然后修改一次对应位置跑一下manacher。

赛后总结

1.真的,好好刷算阶

2.字符串相关数据结构和算法忘得很多,回文串相关尤其差劲,某天晚上在床上想kmp,一下都没想到板子)

3.虽然和这场比赛无关,但我图论的二分图,匹配,匈牙利算法相关学的不是很好…

4.对拍比我想的时间要长…特别是没写暴力分段的情况下,大概要30min+

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值