摘要: 题意: 给有 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) 编辑
摘要: 题意: LCM(a, b) = X,求 max(a, b) 的最小值。 思路: a, b 只可能存在于 X 的因子中,枚举即可。 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll lcm(ll a,ll b) 阅读全文
posted @ 2020-03-14 22:14 Kanoon 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个长为n的序列,是否存在与原序列不同的连续子序列,其元素之和大于等于原序列。 思路: 从前、后分别累加,若出现非正和,除此累加序列外的子序列元素之和一定大于等于原序列。 #include <bits/stdc++.h> using namespace std; typedef long l 阅读全文
posted @ 2020-03-14 22:05 Kanoon 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个移动序列,可以无效化一些指令,问可以移动到多少不同位置。 思路: 第一印象是统计左右指令数目,后来发现左右指令数目和即字符串长度。 #include <bits/stdc++.h> using namespace std; int main() { int n;cin>>n; cou 阅读全文
posted @ 2020-03-14 21:53 Kanoon 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 思路: 后序遍历序列 = 左子树遍历序列 + 右子树遍历序列 + 根节点。 中序遍历序列 = 左子树遍历序列 + 根节点 + 右子树遍历序列。 找到根节点,再利用根节点计算新的后、中遍历序列端点 阅读全文
posted @ 2020-03-13 23:14 Kanoon 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题意: 0到N的数轴上,每次可以选择移动到x-1,x+1,2*x,问从n移动到k的最少步数。 思路: 同时遍历三种可能并记忆化入队即可。 Tips: n大于等于k时最短步数为n-k。 在移动的过程中可能会越界、重复访问。 poj不支持<bits/stdc++.h>和基于范围的for循环。 #incl 阅读全文
posted @ 2020-03-13 18:02 Kanoon 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意: n 个点 n - 1 条边的树,问每个点所在所有子树中白黑点数目的最大差。 思路: 白点先由下至上汇集,后由上至下分并。 #include <bits/stdc++.h> using namespace std; const int M=220000; vector<vector<int>> 阅读全文
posted @ 2020-03-13 15:40 Kanoon 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意: 每天有 h 小时,有一序列 an,每次可以选择 ai 或 ai - 1 小时后睡觉,问从 0 次 0 时开始,最多在 l ~ r 时间段入睡多少次。 思路: 如果此时可达,计算此时可达的时间点及其是否位于 l ~ r 区间。 #include <bits/stdc++.h> using na 阅读全文
posted @ 2020-03-13 12:36 Kanoon 阅读(120) 评论(0) 推荐(0) 编辑