摘要: 题意: 寻找异或后值为 u,相加后和为 v 的最短数组。 思路: 异或得 u ,则 v 至少应大于等于 u ,且多出来的部分可以等分为两份相消。 即初始数组为 u , (v-u)/2 , (v-u)/2,之后即为特判或判断是否可以合并。 #include <bits/stdc++.h> using 阅读全文
posted @ 2020-03-15 02:05 Kanoon 阅读(258) 评论(0) 推荐(1) 编辑
摘要: 题意: 给有 n 个点的树的 n-1 条边从 0 到 n-2 编号,使得任意两点路径中未出现的最小数最小的方案。 思路: 先给所有度为 1 的点所在边编号,之后其他点可以随意编排。 #include <bits/stdc++.h> using namespace std; const int M=1 阅读全文
posted @ 2020-03-15 01:54 Kanoon 阅读(282) 评论(0) 推荐(1) 编辑
摘要: 题意: 给你一个数组,可以像题目那样无限拼接,问递增子序列的最大长度(可不连续)。 思路: 序列的最大长度即为数组中不同元素的个数。 Tips: 一开始不知道back-to-back什么意思,看到题目立刻懂了2333。 #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2020-03-15 01:45 Kanoon 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意: GCD(a,b) + LCM(a,b) = n,已知 n ,求 a,b。 思路: 设 gcd(a, b) = k, a = xk, b = yk , k + ab / k = n xy = n/k - 1 令 k = 1 , 则 xy = n - 1 令 x = 1 , 则 y = n - 阅读全文
posted @ 2020-03-15 01:35 Kanoon 阅读(200) 评论(0) 推荐(0) 编辑