• 2017中国大学生程序设计竞赛-杭州站-重现赛


    比赛题目:
    http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf
    A
    签到题,最后奇数位和偶数位都要一样。


    B
    要求 sum{ phi(d)*n/d } ,假设 d 有质因子 p1, p2.....pk ,那么 d 的贡献是 phi(d) * n/d = d*(1-1/p1)*(1-1/p2)*....*(1-1/pk)*n/d = (1-1/p1)*(1-1/p2)*.....*(1-1/pk)*n 。
    所以对于质因子 p1, p2....pk ,它的贡献是 (q1*q2*.....*qk) * (1-1/p1)*(1-1/p2)*......*(1-1/pk) * n 。
    n 只有20, dfs 求一下就好了。
    代码:https://paste.ubuntu.com/p/f4D33sZt7Q/


    C
    玄学博弈,猜出来的,,,要证明真证不出来。
    假设 A 是选两次的,B 是选一次的。
    结论是:轮到 A 时,如果剩下全是 1,且个数是 3 的倍数,那 A 就输了;否则 A 必赢。
    所以如果 d1,那看是不是这种情况; 如果 d2,那看 B 取一次能否变成这种情况。


    D
    赛后队友打表找规律给补出来了,我是很服气的。。。


    J
    签到题,统计 2 和 3 的个数即可。


    K
    题意:两个数组 a[]、b[],三种操作:更改 a[],更改 b[],求最小的 t 使得 k <= sum{ floor( (t-b[i])/a[i] ) } 。
    很有意思的一个题。
    明显二分,但该怎么快速 check ?
    考虑对于 (t-b[i])/a[i] ,要向下取整,设 t = k1*a[i]+b1, b[i] = k2*a[i]+b2 ,那么 (t-b[i])/a[i] = k1-k2 + (b1-b2)/a[i] , 假定 ans = k1-k2 。
    如果 b1-b2<0 ,则 ans -= 1 ;否则 ans 不用变。这样就把向下取整化掉了。
    注意 a[i] 只有1000
    求 k2 用一个数记录即可,求 k1 跑1000就好。而求 (b1-b2)/a[i] 维护1000个树状数组,对于一个 b1 和 a[i],看有多少个 b2 大于 b1 。
    代码:https://paste.ubuntu.com/p/RBQkhPWNhb/


    弱渣只能补这几个题了

  • 相关阅读:
    新概念英语(第一册)Lesson 1
    第七篇、Python之模块/包
    解压序列
    eval函数
    python--magic module 文件类型识别
    MIME_type
    彻底删除git中的文件(包括历史提交记录)
    for循环与range()函数
    Linux 内核的 Makefile
    Python module ---- abc
  • 原文地址:https://www.cnblogs.com/sbfhy/p/8884447.html
Copyright © 2020-2023  润新知