仙人掌&圆方树学习笔记

终于对仙人掌有了一点初步的理解.

仙人掌

仙人掌是什么?
仙人掌是一个无向图.
仙人掌有什么特点?
仙人掌的每条边只属于一个简单环.
下面是一个栗子
1457912-20181203111923980-2072674389.png

有什么用呢?
我们可以先用\(tarjan\)找出环,然后处理.
下面是一道例题,\(BZOJ4316\)
显然,在环内\(dp\),把答案并到根(环中\(dfs\)序最小的点)上,然后在环外\(dp\)就行了.
详细题解在这里


下面是另一道例题,\(BZOJ1023\)
我们用\(f[u]\)表示到\(u\)的最长距离.
还是每次找到环就\(dp\)一番,然后再环外\(dp\).
环内是一个简单的用单调队列优化的区间\(dp\).
具体题解戳这里


圆方树

有的时候,朴素的\(tarjan+dp\)可能无法解决某些问题.
我们需要构造圆方树.
圆方树是什么?
对于仙人掌中所有的环,都新建一个节点,连接环上所有节点.我们称原来的点为圆点,新建的点为方点.
仙人掌上的桥就直接保留即可.
找环就\(tarjan\)即可.
比如上图的仙人掌,构造的圆方树长这样
(其实\(7,8\)号点是方点)
1457912-20181203111940626-2129031462.png

圆方树有一些很优秀的性质

  • 圆方树是一棵树
  • 圆方树中不存在方-方边.
  • 圆方树是联通的(对仙人掌而言)
    于是我们将仙人掌的问题转化为树上问题,可以有许许多多的解法了.

下面是一道简单的例题,\(BZOJ2125\)
详细题解在这里


下面是一道困难的例题,\(CF487E\)
详细题解在这里

转载于:https://www.cnblogs.com/Romeolong/p/10057431.html

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值