摘要: 题意: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 思路: 后序遍历序列 = 左子树遍历序列 + 右子树遍历序列 + 根节点。 中序遍历序列 = 左子树遍历序列 + 根节点 + 右子树遍历序列。 找到根节点,再利用根节点计算新的后、中遍历序列端点 阅读全文
posted @ 2020-03-13 23:14 Kanoon 阅读(190) 评论(0) 推荐(0) 编辑
摘要: poj 1064 Cable master(二分) poj 1852 Ants(思维) poj 2182 Lost Cows(模拟/线段树) poj 2299 Ultra-QuickSort(归并排序/树状数组/线段树) poj 2528 Mayor's posters(线段树,离散化) poj 3 阅读全文
posted @ 2020-03-13 18:03 Kanoon 阅读(156) 评论(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 阅读(162) 评论(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 阅读(191) 评论(0) 推荐(0) 编辑
摘要: https://paste.ubuntu.com/ 选择语言类型与保留日期,可以为代码生成一个链接便于分享。 阅读全文
posted @ 2020-03-13 12:51 Kanoon 阅读(114) 评论(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 阅读(122) 评论(0) 推荐(0) 编辑
摘要: hdu 1166 敌兵布阵(树状数组) hdu2049 不容易系列之(4)——考新郎(组合,错排) hdu4460 Friend Chains(广度优先搜索) 阅读全文
posted @ 2020-03-13 11:13 Kanoon 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题意: 有长为n的a,b两序列,问满足ai+aj>bi+bj(i<j)的i,j对数。 思路: 移项得:(ai-bi)+(aj-bj)>0,i<j即i!=j,用c序列保存所有ai-bi的值,排序,若左右数之和大于0,则右数与二数间的数之和都大于0,计入结果后移动右指针,否则移动左指针。 Tips: c 阅读全文
posted @ 2020-03-13 01:01 Kanoon 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个每个单元标明移动方向的长为n的序列,每次移动不能超过距离k,问能够从0移动到n+1的k的最小值。 思路: k=最长连续L序列长度+1。 #include <bits/stdc++.h> using namespace std; void solve(){ string s;cin>>s 阅读全文
posted @ 2020-03-13 00:37 Kanoon 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题意: 问一个数组中是否存在至少长为3的回文子数组(按下标排列,可不连续)。 思路: 找三个相同数或两个不连续的相同数。 #include <bits/stdc++.h> using namespace std; const int M=5500; void solve(){ int last[M] 阅读全文
posted @ 2020-03-13 00:30 Kanoon 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题意 : 有n个高度,可以使任一高度加二任意次,问最终n个高度可否相同。 思路: 因为添加的2x1的方块不可旋转,只需考虑所有高度是否为同一奇偶性即可。 #include <bits/stdc++.h> using namespace std; void solve(){ int n;cin>>n; 阅读全文
posted @ 2020-03-13 00:21 Kanoon 阅读(154) 评论(0) 推荐(0) 编辑