Codeforces Round #450

Find Extra One

Solution

Position in Fraction

Solution

Remove Extra One

f[i]表示删掉i能增加的record数目

从左到右处理,记录当前最大数max1和第二大数max2。如果第i个数字a[i]大于最大数,则第i个数字本身是个record,f[a[i]]--,因为删掉它会导致减少一个record。如果a[i]在max1和max2之间,f[max1]++,因为此时删掉max1可以增加一个record。

选择f值最大的数中最小的输出即可。

Solution

Unusual Sequences

首先把y除以x,变成求最大公约数是1的序列的个数。

对于剩下的数,显然仍然有一个最大公约数,而且这个最大公约数一定是y的约数(这跟为什么y=y/x,除不尽直接输出0道理一样)。假定这个最大公约数是p,那么满足此种情况的数列的个数与加起来是y/p,最大公约数为1的数列个数相同。

假设f(t)表示加起来是t,且最大公约数是1的数列的个数;g(t)表示加起来是t,最大公约数随意的数列的个数,显然g(t)=sigma(f(d)) d|t,且g(t)=2^(t-1),从而可以根据莫比乌斯反演求出f(t)。

Solution

Maximum Questions

cost[i]表示从i开始匹配一个m所需替换次数,dp[i].first为从1到i最多能匹配的次数,second表示达到最多匹配次数时的最小替换次数。

Solution

相关文章:

  • 2021-11-21
  • 2021-11-17
  • 2019-01-03
  • 2022-01-29
  • 2021-07-16
  • 2022-02-19
  • 2021-10-15
  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2022-02-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案