当前位置:首页>开发>正文

写出图着色问题程序:一个圆饼,被从中点画半径分成n等分,有k种颜色,每个区域不能和两边颜色相同。

2023-06-21 03:58:03 互联网 未知 开发

 写出图着色问题程序:一个圆饼,被从中点画半径分成n等分,有k种颜色,每个区域不能和两边颜色相同。

写出图着色问题程序:一个圆饼,被从中点画半径分成n等分,有k种颜色,每个区域不能和两边颜色相同。

搜索嘛 复杂度就是方案数了(当然还有一个常数)

简单的深搜你应该会写吧(我就当你会写了)

然后现在最关键的就在于判重 重复的情况有两种 一是旋转重复 一是对称重复

旋转重复判重很简单 只要固定一块的颜色就可以了 比如你把n等分的圆块编号 然后只要你固定好第一块的颜色(随便什么颜色) 就可以了

至于对称重复需要你关注两个对称的块 比如说 n=20的时候 你可以关注 第10块和第12块
然后用一个bool数组 如果 第10块和第12块的一种颜色搭配已经有了A B 那么第10块和第12块则不能有BA这种颜色搭配

that is all