牛客小白月赛41题解

题解

程序在最后呀 ovo

A. 等价于给每个人尽量分配多的过题数。

答案是 min(ca,b) \min (\frac c a, b) .

B. 注意到要求 "最短的回文子串(长度 > 1)", 那这就简单很多了。

情况只有两种 "aa" (长度 = 2), "aba" (长度 = 3)。

复杂度 O(n)O(n).

C 最多过几天,那就是要让每天选择不舒适度最小的即可

注意到每次使用都会使不舒适度翻倍

那么对于每个口罩,被使用的次数 <logk< \log k 上界很松,总计算量 nlogkn \log k

维护最小值可以使用堆 总复杂度 O(nlogklogn)O(n\log k \log n).

D 转化后就是求 (i,j),i<ja[i]×a[j]><=k(i, j) , i < j 且 a[i] \times a[j] > 或 < 或 = k 分别的个数。

考虑当前枚举到 下标 ii

对于 j<ij < ia[i]×a[j]>ka[j]>ka[i]a[i] \times a[j] > k \Lrarr a[j] > \frac k {a[i]}.

对于 j<ij < ia[i]×a[j]=ka[j]=ka[j]a[i] \times a[j] = k \Lrarr a[j] = \frac k { a[j]} .

对于 j<ij < ia[i]×a[j]<ka[j]<ka[i]a[i] \times a[j] < k \Lrarr a[j] < \frac k {a[i]} .

那么就把 [1,i1][1, i - 1] 的数做一个数点问题就可以了, 树状数组或set都ok.

复杂度 O(nlogn).O(n\log n).

E 迷宫问题, 用bfs + 数组记录剪枝即可,复杂度奇怪。

F 题目的意思是重排数位使得 n%375=0,n1030000n \% 375 = 0 , n \leq 10 ^ {30000}.

注意到 n=i=0maxbitdi×10in= \sum_{i = 0} ^ {maxbit} d_i \times 10 ^ i , n%375=(i=0maxbitdi×(10i%375))%375.n \% 375 = (\sum_{i = 0} ^ {maxbit} d_i \times (10 ^ i \% 375))\%375.

举个例子

247965%375=(2×(105%375)+4×(104%375)+7×(103%375)+9×(102%375)+6×(101%375)+5×(100%375))%375247965 \% 375 = (2\times (10^5 \% 375) + 4\times (10^4 \% 375) + 7\times (10 ^ 3 \% 375) + 9\times (10 ^ 2 \% 375) + 6 \times (10^1 \% 375) + 5\times (10 ^ 0 \% 375)) \% 375

我们发现 i>2,10i%375=250.\forall i > 2, 10 ^ i \% 375 = 250.

证明考虑归纳, 对于 i=3,1000%375=250i = 3, 1000 \% 375 = 250 成立。

i=k,10k%375=250i = k, 10 ^ k \%375 = 250 成立

i=k+1,10k+1%375=(250×10)%375=250.i = k + 1, 10 ^ {k + 1} \% 375 = (250 \times 10) \%375 = 250.

所以结论成立。

所以只需要枚举最后三位取值情况判断就可以了 也就是

S=d1+d2+...+dmaxbit.S = d_1 + d_2 + ... + d_{maxbit}.

等价于判断 ((Sdidjdk)×250+100di+10dj+dk)%375=0.((S - d_i - d_j - d_k) \times 250 + 100d_i +10d_j + d_k) \% 375 = 0.

枚举值域以及注意前导0的情况, 复杂度 O(logn+103)O(\log n + 10^3)

A : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49782231

B : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49782811

C : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49783522

D : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49785483

E : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49798093

F : https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49789385

全部评论

相关推荐

05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-18 22:30
我看都是谁在卷前端!
秋盈丶:搜了下,20人的公司能收到2000份招呼?真有这么夸张吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务