zoukankan      html  css  js  c++  java
  • 清华集训2016 可做题集合

    其他的题好像不可做呢 QAQ

    我太菜了 QAQ

    uoj266 Alice 和 Bob 又在玩游戏

    给一个有根树森林,Alice 和 Bob 两个人每次选择一个点 x,删除 x 和 x 所有祖先,不能操作的人输,求赢的是谁

    sol:

    考虑 SG 函数,如果删除根节点,后继状态就是所有儿子为根的游戏,把它们的 SG 值异或起来即可,如果不删除根节点,那就是删除以那个点为根的子树的根节点,后继状态就是那个子树里 SG 值异或和再异或上外面的 SG 值,那也就是相当于把这一棵子树的 SG 值全体异或上除它以外的所有儿子 SG 函数异或和

    暴力转移是 $O(n^2)$ 的,我们用一个数据结构从下往上合并来解决,这个数据结构可以支持整体异或一个值,快速合并,查询 mex

    可以用 log 棵线段树模拟 Trie 树,异或就是 Trie 树的异或,mex 就是 Trie 树贪心往左走,合并就把那块的 log 棵线段树合并起来

    复杂度 $O(nlogn)$

    uoj267 魔法小程序

    有一个程序

    定义数组 a[], b[], c[]
    定义函数 魔法(x, y, z):
    {
        如果 a 的长度 == z:
            返回 x >= y
        如果 x % a[z] < y % a[z]:
            返回 假
        返回 魔法(x / a[z], y / a[z], z + 1)
    }
    定义函数 主程序():
    {
        读入 a[], b[]
        令 c[] 的长度与 b[] 的长度相同,且 c[] 的每个元素均为 0
        令 变量 i 从 0 循环至 b 的长度 - 1:
            令 变量 j 从 0 循环至 i:
                如果 魔法(i, j, 0):
                    c[i] += b[j]
        输出 a[], c[]
    }

    现在给你 a 数组和 c 数组,求 b 数组

    $n leq 10^6$

    sol:noip 初赛题加强版

    阅读程序可以发现,这个“魔法”是把两个数转成两个奇怪进制的数 A 和 B,如果 A 的每一位大于 B 的每一位,则 $sum_A += sum_B$

    仔细阅读程序可以发现,如果 $prod_{i=1}^{n}a_i geq n$ ,则 $a_i$ 和 $a_i$ 往后的都没用了

    再发现,这个程序的本质不是进制转换,而是多维前缀和,因为显然,多维前缀和就是“当 A 和 B 满足多维偏序关系时,A 会贡献到 B”

    然后发现 A 数组的每一项就是每一维的长度,n 就是多维数组一共有多少个数

    显然,长度大于等于 1 的维数不超过 logn 个,我们在最后加入一个长度等于 1 的维,之前等于 1 的就都可以跳过了

    之后我们暴力模拟即可

    uoj274 温暖会指引我们前行

    语文题,题意极端复杂

    sol:LCT 动态维护最大生成树即可

    维护边权信息可以在边上开一个点,把这个点权当做边的边权

    uoj275 组合数问题

    求 $i leq n,j leq min(i,m)$ 中有多少 $$C_{i}^{j} space mod space k = 0$$

    $n,m leq 10^{18},k leq 100,k$ 是质数

    sol:考虑 Lucas 定理

    把 i 和 j 都转成 k 进制,组合数在膜意义下为 0 等价于 i 和 j 在 k 进制下某一位相应组合数等于 0

    组合数什么时候等于 0 呢?当然是上面比下面大的情况

    于是原题就变成了 k 进制下,有多少数对 $(i,j)$ 满足 i 至少有一位小于等于 j $(i leq n,j leq min(i,m))$

    于是一个数位 dp ,$f_{(i,0/1)}$ 表示前 i 为,是/否已经满足“ i 至少有一位小于等于 j ”的方案数

    转移的时候注意,要把每个状态都记下来(反正空间够),要不然复杂度不对,最后要减去 $m imes (m+1) / 2$ 因为上面的方程只考虑到了数位,没有考虑到 $i < j$ 的情况

    代码先咕着,明天找老师要(flag

  • 相关阅读:
    puppet master/agent
    puppet单机模型
    Nginx MogileFS 配置
    mogilefs 安装与配置
    CMakeLists.txt
    下载安装MariaDB Galera 10.1
    BZOJ1295: [SCOI2009]最长距离
    BZOJ2375: 疯狂的涂色
    BZOJ1260: [CQOI2007]涂色paint
    BZOJ2789: [Poi2012]Letters
  • 原文地址:https://www.cnblogs.com/Kong-Ruo/p/10059632.html
Copyright © 2011-2022 走看看