• test0523


    test 0523

    T1 树上三角形

    得分情况

    期望:70-100

    实际:10

    改后:

    题意

    给定一个大小为 (n) 的有点权树,每次询问一对点((u,v)),问是否能在 (u)(v) 的简单路径上取三个点权,以这三个权值为边长构成一个三角形。同时还需支持单点修改。

    犯傻原因

    莫名其妙的树链剖分中线段数写挂了,然后没考虑到限制上传数量的优化……

    正解

    考虑到直接暴力,先求出LCA,然后发现路径长度为 (k) ,我们知道,如果要满足

    [a_i>a_{i-1}+a_{i-2} ]

    极端请情况为斐波那契,那么所有数字在int范围内,所以最多50个数。

    若两点直接路径长度大于50,那么可以直接判断为可行。

    否则直接暴力,最后复杂度(O(q))

    T2 树上游戏

    得分情况

    期望:100

    实际:100

    题意

    Bob 发明了一种与树有关的游戏: 他从树中删除任意数量的边,计算删除后所有连通块大小的乘积, Bob 将得到这么多的分数。你的任务就是对于一颗给定的树,求出 Bob 能得到的 最大分数。

    正解

    考虑树形DP

    (f_{x,j}) 为点 (x) 分为 (j) 个联通块时的答案,那么就有

    [f_{x,j}=frac{f_{x,k}}{k} imes frac{f_{y,j-k}}{j-k} imes j (yin x's son) ]

    然后宁高精就水过了,不过有个玄学优化,为了避免再写个高精除,可以设

    [g_{x,j}=frac{f_{x,j}}{j} ]

    那么就显然了

    T3 树上路径

    得分情况

    期望:0

    实际:0

    题意

    古时候帝国有 (n) 个城堡,编号从 (1)(n)。除了皇帝拥有的城堡之外,其他每 个城堡都从属于某个城堡。如果两个城堡有直接从属关系,则有一条双向路径连 接两个城堡,保证整个帝国的所有城堡互相可达。 每一年,野蛮人有可能对某一个城堡 (c) 发起攻击,所到之处,寸草不生。此 外,野蛮人不会对同一个城堡发起多次攻击。 如果某一年野蛮人没有攻击,则骑士就会出来巡逻,巡逻路线是从城堡 (a) 到 城堡 (b) 且不会多次经过同一个城堡。在巡逻时,骑士需要休息,但是他不会选择 y 年后被攻击的城堡休息。具体地说,城堡 (a) 到城堡 (b)(不含 (a)(b))的路线 中,第 k 个在 y+1 年后没被攻击的城堡会被骑士选做休息地点。 你的任务就是计算每次骑士巡逻的休息地点。

    犯傻原因

    暴力最后没写出来(不过据说这个暴力在这个水数据下可以A?)

    正解

    考试总结

    T1没有仔细想就开始写了,没能想到更简便的方法,写树链剖分浪费了许多时间还写错了……

    T2还好过了但调试也花了点时间

    T3最后暴力没写出来……

    题目还是多想想再动手……不然写完了才发现错了是真的惨。然后先预留好时间写难题的暴力,说不定出奇迹……

  • 相关阅读:
    使用Apache CXF开发WebServices服务端、客户端
    javascript 获取项目根路径
    js密码的校验(判断字符类型、统计字符类型个数)
    JS正则表达式基础总结
    mysql之视图
    mysql之触发器trigger(1)
    mysql之触发器before和after的区别(2)
    MySQL之左连接与右连接
    @Resource和@Autowired的区别
    java计时器
  • 原文地址:https://www.cnblogs.com/ztz-cpp/p/test0523.html
Copyright © 2020-2023  润新知