把一个凸包进行三角剖分,那么如果把每个三角形看成一个节点,有相邻边的三角形之间连一条边,那么这就成了一个树形结构
我想了一下,认为能连接凸包上两点所经过的三角形,一定是新树中的一条链,所以只要树型dp求最长链即可
处理相邻的三角形有点麻烦,我用了一个比较轻巧的方法:把每个三角形的三条边放进一个map,然后每新读入一个三角形就把他的三条边扔进map里查,如果出现过了就可以连边
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdlib>
#include <utility>
#include <cctype>
#include <algorithm>
#include <bitset>
#include <set>
#include <map>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <cmath>
#define LL long long
#define LB long double