摘要:
红蓝图 kruskal重构树+dfs序+线段树合并 题解: 如果不会kruskal重构树,建议先写 D. Graph and Queries 并查集+线段树+kruskal重构树 首先对查询按照 t 从大到小排序,然后按照权值从大到小建一棵kruskal重构树,然后dfs求出每一个节点的dfs序,顺 阅读全文
摘要:
H - Traveling Plan 最小生成树+路径的最大值 这个题目太可惜了,想错了一点点,本来是想把0的点都删去,但是想了好久都不知道怎么删,最后看了题解发现可以不用删边,把边的大小变成等效删边的大小即可 题解: 参考题目:lh的简单图论 多源最短路求出每一个点到最近的补给点的距离 $d[i] 阅读全文
摘要:
D. Graph and Queries 并查集+线段树+kruskal重构树 题目大意: 给你n个节点,每一个节点有一个权值,m条边,q次查询,有两种查询 1 v 表示查v所在的连通块的最大值 2 x 表示第x这条边删去 题解: 这个类型求连通块的最大值和删边操作的题目可以用kruskal重构树做 阅读全文
摘要:
2020牛客国庆集训派对day8 Easy Chess 模拟 or dfs 恶心的签到题,但是如果用dfs写就还算一个正常的题目了 #include <bits/stdc++.h> using namespace std; const int maxn = 100; struct node{ int 阅读全文
摘要:
D. Searchlights 枚举+思维 题目大意: 给你n个机器人和m个监控器,你每次可以指挥所有的机器人x+1或者y+1,要求是最后对于每一个机器人,必须满足 ax>cy and bx>dy,也就是对于每一个机器人,他都要在任意一个监控器的右上方。 题解: 先求出每一个机器人横坐标走出去的dx 阅读全文
摘要:
D. Returning Home 最短路 题目大意: 你现在位于位置 \((sx,sy)\) ,你家的位置是 \((gx,gy)\) ,你在一个大小 \(n*n\) 的网格中行走,在一分钟之内,你可以往相邻的格子走动一格,这里有 \(m\) 个特殊的点,如果你走到的点和特殊的点在同一x坐标轴或者y 阅读全文
摘要:
Juggling Troupe 打表找规律 题解: 这个居然是一个打表找规律的题目,不可思议,这个规律好难找。。。 规律: 如果第 i 个位置是2,找到左边离它最近的0 设为L,找到右边离它最近的0 设为 R, 那么对于区间 [L,R] ,位置 L+R-i 的数字变成0,其他都是1 又发现每个2是独 阅读全文
摘要:
F - Factor-Free Tree 递归 题目大意: 给出某一颗带点权树的中序遍历序列,问是否存在一颗对应的带点权树满足条件:每个节点的子孙节点的权值都和该节点的权值互质。如果存在则输出符合条件的树的每个节点父亲节点。 题解: 这个题目其实还是很简单的,但是不知道为什么出的人这么少,很可能是复 阅读全文
摘要:
I - Installing Apps 贪心+01背包 题目大意: 有n种手机软件,每一种软件的安装包大小是d,安装后的软件大小是s(删除了安装包),那么若有c的手机内存,最多能安装多少个手机软件 题解: 贪心,用微调法可以确定贪心的策略,也就是排序的依据。 微调法就是调整前后两个的顺序,来求需要的 阅读全文
摘要:
K - Knockout Tournament 递归,暴力求解 题目大意: 这个题目大意有点难说明,还是自己理解的好。 如果n=10,那么就是比赛一定是上面的图的形式。 题解: 先读懂题目大意,找到一个合理的递归方式,然后暴力求每一个可能,往上回传一个vector数组。 思维不大,主要题目要看懂! 阅读全文