• September Challenge 2020


    挑几道题讲讲

    Chefina and Swap

    由于我比较傻,所以列了个暴力的式子:(Ans=sumlimits_{i=1}^nsumlimits_{j=1}^{i}sumlimits_{k=i+1}^n [k-j={n+1choose 2}-{i+1choose 2}])
    然后化简后能得到三个单调的区间,然后二分,加上自然数二次幂、三次幂求和。(O(logn))

    被官方题解吊着打
    对于存在(i)使得({i+1choose 2}=sum/2(sum~is~even))很简单
    否则对于唯一的(i)({i+1choose 2})较小,({i+2choose 2}较大),使得交换([1,i])([i+1,n])内的才能合法

    Divide Candies

    我瞎写了个乱搞硬艹过去了code

    被官方题解吊着打
    对于(N=1~or~Nequiv 2(mod~4))答案是只能是奇数
    结论1(对于K=M)(x^K,(x+1)^K,(x+2)^K,cdots,(x+2^{K+1}-1)^K),一定存在最小差(0)

    (K)施归纳,令对于(M=0)显然成立
    (egin{aligned}Sum(B) - Sum(A) &= - sum_{i = x}^{x + 2^{M + 1} - 1} i^M * (-1)^{bits(i)} \ &= sum_{i = x}^{x + 2^M - 1} ((i + 2^M)^M - i^M) * (-1)^{bits(i)} \ &= sum_{i = x}^{x + 2^M - 1} (sum_{j = 0}^{M - 1} i^j inom{M}{j} (2^M)^{M - j})* (-1)^{bits(i)} \ &= sum_{j = 0}^{M - 1} inom{M}{j} (2^M)^{M - j} sum_{i = x}^{x + 2^M - 1} i^j * (-1)^{bits(i)}end{aligned})

    打表可以发现,(2^{K+1}le N<2^{K+2})时是对的,(N>2^{K+2})的情况可以反复删掉末尾(2^{K+1})
    可以对(N<2^{K+2})写个布尔型背包,用bitset优化

  • 相关阅读:
    页面转表格并且下载
    关于表格导入
    C/C++作用域运算符::
    设计模式之观察者模式_C++
    C# 传不定参数
    C语言中的位域的使用
    C++/python求哈希值(SHA256)
    C++中纯虚函数
    类模板/函数模板实现父类指针指向子类对象(虚函数实现多态)
    Windows Socket 接口简介
  • 原文地址:https://www.cnblogs.com/Grice/p/13675926.html
Copyright © 2020-2023  润新知