cf #737 (Div. 2) A-C

发布于:2022-07-27 ⋅ 阅读:(557) ⋅ 点赞:(0)

A - Ezzat and Two Subsequences

思路:

贪心,取最大的数字为一部分,其他数字为一部分即可,证明如下
在这里插入图片描述

B - Moamen and k-subarrays

思路:

思维题,读入数据时,用pair保存值的同时保存数组下标,带着数组下标sort,看排序后的数组下标有多少不连续的段,这里数组下标一定是递增的才算连续,如果大于k输出no,反之为yes

C - Moamen and XOR

思路:

一共 n n n个数字,分奇偶讨论

  • n n n为奇数时,一定有 a < = b a<=b a<=b,只需考虑 a = b a=b a=b的情况,分别看每一位,要么全1,使得结果为1(有1种情况),要么偶数个1,奇数个0,使得结果为0(有 C n 0 + C n 2 + . . . + C n n − 1 = 2 n − 1 C_{n}^{0}+C_{n}^{2}+...+C_{n}^{n-1}=2^{n-1} Cn0+Cn2+...+Cnn1=2n1种情况),综上,当前位情况有 2 n − 1 + 1 2^{n-1}+1 2n1+1种,总情况有 ( 2 n − 1 + 1 ) k   % m o d (2^{n-1}+1)^{k}\ \%mod (2n1+1)k %mod
  • n n n为偶数时, a = b a=b a=b的情况有 C n 0 + C n 2 + . . . + C n n − 2 = 2 n − 1 − 1 C_{n}^{0}+C_{n}^{2}+...+C_{n}^{n-2}=2^{n-1}-1 Cn0+Cn2+...+Cnn2=2n11种,对于 a > b a>b a>b的情况,从1到 k k k枚举 i i i,考虑当前第 i i i位要 a = 1 , b = 0 a=1,b=0 a=1,b=0,之前位相等(有 ( 2 n − 1 − 1 ) i − 1 (2^{n-1}-1)^{i-1} (2n11)i1种情况),之后位任意(有 ( 2 n ) k − i (2^n)^{k-i} (2n)ki种情况),总情况有 ( ( 2 n − 1 − 1 ) k + ∑ i = 1 k ( ( 2 n − 1 − 1 ) i − 1 + ( 2 n ) k − i ) )   % m o d ((2^{n-1}-1)^{k}+\sum ^{k}_{i=1}((2^{n-1}-1)^{i-1}+(2^n)^{k-i}))\ \%mod ((2n11)k+i=1k((2n11)i1+(2n)ki)) %mod种情况

推荐一篇排列组合公式的博客:排列组合的一些公式及推导


网站公告

今日签到

点亮在社区的每一天
去签到