摘要:
暴力+模拟 阅读全文
摘要:
额,说实话,还是第一次这样用并查集 本质就是记录连通项的个数。如果,轰炸一个城市,产生一个或者不产生,则说明,该城市对其他城市的连接没有直接作用。 那么怎么来数每次的连通项呢?没错!有多少个祖先就有多少个连通项。其实,就是每次都要把边连接起来,当然,被轰炸的城市所在的边用该丢弃! 阅读全文
摘要:
就是一个最小根堆。 最小根堆的性质,根节点小于等于子树的完全二叉树吧。 构建最小根堆的过程就是一个自下向上的过程。 阅读全文
摘要:
树的遍历: 关键在与如何利用中序和后序建树。 中序的作用,提供了左右子树的所有节点的分布! 前序,后序的作用:就是第一个元素(最后一个元素)提供了根节点,让中序找到子树的分布情况。 玩转二叉树: 这里的改变只是在建树的时候,把原本左子树放在实际的右子树上,原本的右子树放在左子树上。 阅读全文
摘要:
这里唯一需要注意的是,各个输出的条件在题目中有点描述模糊。 是朋友关系,(不管是不是间接朋友关系) 既不是朋友也不是敌人(这里不用管是不是间接朋友) 是敌人关系,同时是间接朋友关系 是单纯的敌人关系,(表示,不是间接朋友关系) 阅读全文
摘要:
#include #include #include #include using namespace std; const int maxn = 2e5 + 1000; char s[maxn], str[maxn]; int len1, len2, p[maxn], ans; void init(){ str[0] = '#'; str[1] = '#'; for (... 阅读全文
摘要:
#include #include #include using namespace std; const int maxn = 100; int af[maxn], in[maxn], n; struct node{ int l, r; }tree[maxn]; int biuld(int al, int ar, int bl, int br){ if (al > ar)re... 阅读全文