摘要:
JAVA的swap实现 JAVA不能操作地址,所以不能像CPP那样方便地实现对基本数据类型的swap。 java中的基本数据类型传递属于引用传递,并不会像c/c++实现指针传递; 通过包装类对象配合反射可以实现数据的交换。 只能通过以下几种方式。 通过数组对象交换 public class Test 阅读全文
摘要:
P1363 幻象迷宫 判断无限路径(判环) 难点就在判断该点是否会无限走过。 思路是维护目前 \((x,y)\) 下的传送次数,和历史上 \((x, y)\) 的传送次数。 如果 \((x, y)\) 已经被走过,且传送次数又和历史上不同,说明已经开始无限循环了。 #include<iostream 阅读全文
摘要:
P2853 [USACO06DEC] Cow Picnic S 逆向思维 如果顺着题目走,不大好做。 考虑该题要求的是可以供所有奶牛到达的牧场,那么不如从奶牛所在的牧场下手 即对每个奶牛所在的牧场 \(DFS\),对所有到达点标记。 那么显然当一个点的标记等于 \(k\) 时,说明该牧场是合适的。 阅读全文
摘要:
P4017 最大食物链计数 记忆化搜索 DP 角度解 从捕食者向被捕食者建边 维护每个生物的捕食 eat,和被捕食数量 beat。 对每一个食物链顶端 dfs,向下搜索直到找到最低级的生物,记忆化当前结点对应的食物链长度。 #include <iostream> #include <algorith 阅读全文
摘要:
DAG拓扑排序 引入 小学奥数类型题。 沏茶过程 (烧水壶) 到 (接水) 到 (烧水 洗茶杯 找茶叶)(并行) 到 (沏茶) 即有先后顺序的流程,且必须所有步骤都能执行。 概述 拓扑排序是对DAG(有向无环图)的顶点进行的一种线性排序,排序序列中每个顶点都会且仅会出现一次,且对于所有有向边 \(u 阅读全文