test 0523
T1 树上三角形
得分情况
期望:70-100
实际:10
改后:
题意
给定一个大小为 (n) 的有点权树,每次询问一对点((u,v)),问是否能在 (u) 到 (v) 的简单路径上取三个点权,以这三个权值为边长构成一个三角形。同时还需支持单点修改。
犯傻原因
莫名其妙的树链剖分中线段数写挂了,然后没考虑到限制上传数量的优化……
正解
考虑到直接暴力,先求出LCA,然后发现路径长度为 (k) ,我们知道,如果要满足
极端请情况为斐波那契,那么所有数字在int范围内,所以最多50个数。
若两点直接路径长度大于50,那么可以直接判断为可行。
否则直接暴力,最后复杂度(O(q))
T2 树上游戏
得分情况
期望:100
实际:100
题意
Bob 发明了一种与树有关的游戏: 他从树中删除任意数量的边,计算删除后所有连通块大小的乘积, Bob 将得到这么多的分数。你的任务就是对于一颗给定的树,求出 Bob 能得到的 最大分数。
正解
考虑树形DP
设 (f_{x,j}) 为点 (x) 分为 (j) 个联通块时的答案,那么就有
然后宁高精就水过了,不过有个玄学优化,为了避免再写个高精除,可以设
那么就显然了
T3 树上路径
得分情况
期望:0
实际:0
题意
古时候帝国有 (n) 个城堡,编号从 (1) 到 (n)。除了皇帝拥有的城堡之外,其他每 个城堡都从属于某个城堡。如果两个城堡有直接从属关系,则有一条双向路径连 接两个城堡,保证整个帝国的所有城堡互相可达。 每一年,野蛮人有可能对某一个城堡 (c) 发起攻击,所到之处,寸草不生。此 外,野蛮人不会对同一个城堡发起多次攻击。 如果某一年野蛮人没有攻击,则骑士就会出来巡逻,巡逻路线是从城堡 (a) 到 城堡 (b) 且不会多次经过同一个城堡。在巡逻时,骑士需要休息,但是他不会选择 y 年后被攻击的城堡休息。具体地说,城堡 (a) 到城堡 (b)(不含 (a) 和 (b))的路线 中,第 k 个在 y+1 年后没被攻击的城堡会被骑士选做休息地点。 你的任务就是计算每次骑士巡逻的休息地点。
犯傻原因
暴力最后没写出来(不过据说这个暴力在这个水数据下可以A?)
正解
考试总结
T1没有仔细想就开始写了,没能想到更简便的方法,写树链剖分浪费了许多时间还写错了……
T2还好过了但调试也花了点时间
T3最后暴力没写出来……
题目还是多想想再动手……不然写完了才发现错了是真的惨。然后先预留好时间写难题的暴力,说不定出奇迹……