05 2021 档案
摘要:题目链接 #题目大意 给你一个字符串s,让你用s中的字符构造t,使得t通过交换相邻的字符变成s的最小交换次数最大。 #解题思路 结论是相同的字符都放一起结果不会更差(不会证)。然后因为只有4个字符,所以可以用全排列枚举所有方案,然后求逆序数。因为就只有4个字符,且都是相连的,所以可以先求出每个字符换
阅读全文
摘要:题目链接 #题目大意 求n个数的子序列的最大异或和。 #解题思路 求出n个数的线性基并排序,然后将k二进制异或上线性基中对应的代表元素即可。 #代码 const int maxn = 2e5+10; ll arr[maxn]; vector<ll> b; //b中存的每个二进制位的代表元素 void
阅读全文
摘要:#hdu2586 How far away ? 题目链接 ##题目大意 询问树上两点距离 ##解题思路 树剖求lca,\(dis(a,b) = dis(rt, a)+dis(rt, b)-dis(rt, lca(a, b))\times 2\)。 ##代码 const int maxn = 1e5+
阅读全文
摘要:题目链接 #题目大意 略 #解法1:点分治+归并排序+二分 对于当前的重心,首先对其一棵子树求距离,然后二分之前的子树中符合条件的距离的数量,然后用归并来降低排序的时间复杂度。 #代码 const int maxn = 1e4+10; int n, m, rt, tot, tota, totb, t
阅读全文

浙公网安备 33010602011771号