• 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

  • 相关阅读:
    散列函数之单散列算法
    NET 使用 RabbitMQ
    leetCode
    Swift 1
    C#并发集合
    多进程与多线程1
    开发编译器
    APUE1
    微服务架构
    ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”
  • 原文地址:https://www.cnblogs.com/dramstadt/p/8026271.html
Copyright © 2020-2023  润新知