zoukankan      html  css  js  c++  java
  • 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最后暴力没写出来……

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

  • 相关阅读:
    饿了么P7级前端工程师进入大厂的面试经验
    前端程序员面试的坑,简历写上这一条信息会被虐死!
    这次来分享前端的九条bug吧
    移动端开发必会出现的问题和解决方案
    创建一个dynamics 365 CRM online plugin (八)
    创建一个dynamics 365 CRM online plugin (七)
    创建一个dynamics 365 CRM online plugin (六)
    创建一个dynamics 365 CRM online plugin (五)
    使用User Primary Email作为GUID的问题
    怎样Debug Dynamics 365 CRM Plugin
  • 原文地址:https://www.cnblogs.com/ztz-cpp/p/test0523.html
Copyright © 2011-2022 走看看