前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
P3916图的遍历
题意:求每个节点能到达最大节点的编号; SOL:反向建边,倒序枚举最大节点能到达的点。 如果枚举每个点的出边,会发现出边的出边的出边……才是最终的结果,考虑反向建图,倒序枚举最大的点,dfs,这个点能到达的所有的点都更新一遍,第一遍更新的时候一定是最大值,所以如果已经算过一遍就直接return。
P1229遍历问题(已知前序后序遍历,求中序遍历有几种)
tip:只有一个儿子 的节点 才会在知道 前序后序 的情况下有不同的中序遍历,
所以将题目转化成找 只有一个儿子的节点个数。
分析:在先序遍历中某一元素A的后继元素B(**B可能是A的左节点或A无左节点,B为A的右节点**),如果在后序遍历中A的前驱元素是B **B可能是A的右节点或A无右节点,B为A的左节点** , 综上,**那么A只有一个子树,** 问题即得解, SOL:求出有x个节点的子树只有一个(那么中序遍历就可能是左子树或右子树两种),答案即为2^x;
P1443 马的遍历
printf("%-5lld",f[i][j]);
P5407 [THUPC2019]历史行程
蔡勒公式的运用
int week=(c/4)-2c+(y+y/4)+(13(month+1))/5+day-1;

京公网安备 11010502036488号