摘要: 【传送门:BZOJ4690】 简要题意: 有n个物品,m个操作,两种操作: ! a b w表示第a个物品比第b个物品重量轻w ? a b求出a比b轻多少,如果无法求出答案则输出UNKNOWN 题解: 带权并查集,对于!操作,默认编号小的在前面,如果要交换则w=-w 然后直接做就好了 参考代码: 阅读全文
posted @ 2018-04-19 21:14 Star_Feel 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ1806】 简要题意: 有两个矿洞,有三种食物,给出n个食物的配送顺序,每个食物可以给任意一个矿洞,每个食物送到一个矿洞的收益是这个矿洞最近三次(包括送的那次)食物的种类数 请你经过合理的分配食物使得收益最大 题解: 水题DP 设f[i][t1][t2][t3][t4]为当前已经送 阅读全文
posted @ 2018-04-19 16:14 Star_Feel 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ5293】 简要题意: 给出一棵有n个点的树,有m个询问,每个询问输入x,y,k,输出x到y的路径上的所有点的深度的k次方的和 题解: 因为k很小,直接预处理每个点的k次方深度和k次方的时候根到每个点的深度的k次方的和 然后求LCA,直接搞就可以了 参考代码: 阅读全文
posted @ 2018-04-19 13:56 Star_Feel 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ4240】 简要题意: 给出一个长度为n的序列,可以将相邻的数交换位置,要求通过最少交换次数使得这个序列呈左边段不递减,右边段不递增 题解: 树状数组+贪心 将每个数一开始的下标为原本的位置,最后得到的序列的逆序对数就是操作的次数 首先得到的序列肯定是最大的在中间,第二大的在旁边。 阅读全文
posted @ 2018-04-19 11:18 Star_Feel 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ1509】 简要题意: 给你一棵有n个点树 找出三个点x,y,z 求从一个点x出发,先到另外两个点中距离x较近的点,再到剩下的那个点的时间 题解: 我们不妨先假设从x出发,先到y,再到z,这样子的话我们所花费的时间就是dis(x,y)+dis(y,z) 很显然我们肯定要让dis(y 阅读全文
posted @ 2018-04-19 09:57 Star_Feel 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ5301】 简要题意: 给出长度为n的序列,给出m个询问,并给出k,每个询问输入l,r 每个询问输出l到r的序列中的所有子串中的异或和为k的子串数量 题解: 莫队 异或,真是个神东西 首先异或和满足前缀,也就是说设sum[i]为a[1]^a[2]^...^a[i],那么a[i]^a 阅读全文
posted @ 2018-04-19 08:54 Star_Feel 阅读(764) 评论(0) 推荐(0) 编辑