P2304 [NOI2015] 小园丁与老司机 平面上有n个点,每次可以向左、右、上、左上45度、右上45度移动,然后直线移动到达第一个没有到过的点,如果没有这样的点就不能移动,求解一条最长路,然后求解将所有可能不是左右移动的道路都覆盖需要多少路径。 那么首先最长路可以利用dp求解,然后需要覆盖可以先将这样的道路找到,然后连接一条边,利用上下界网络流求解最小流即可。