注册 登录
编程论坛 C++教室

手机锁算法

jinh 发布于 2011-11-08 23:21, 457 次点击

解锁原理:随便从一个开始,连接下一个,再连
下一个,再下一个.就可以了(不能有重复的)
 用邻接矩阵方法构造:         
edge[9][9]={{0,1,0,1,1,1,0,1,0},
{1,0,1,1,1,1,1,0,1},
{0,1,0,1,1,1,0,1,0},
{1,1,1,0,1,0,1,1,1},
{1,1,1,1,0,1,1,1,1},
{1,1,1,0,1,0,1,1,1},
{0,1,0,1,1,1,0,1,0},
{1,0,1,1,1,1,1,0,1},
{0,1,0,1,1,1,0,1,0}};

比如我们把图标号.如从0开始就可以
0    7  8  3
但不能
0    8,


关于这个锁的有多少种.算出来是152
代码如下:
程序代码:
#include
using namespace std;

void main(){
   
    int i,j,k,l,z,count;
    //char vex[9];//顶点表
    int edge[9][9]={{0,1,0,1,1,1,0,1,0},{1,0,1,1,1,1,1,0,1},{0,1,0,1,1,1,0,1,0},{1,1,1,0,1,0,1,1,1},{1,1,1,1,0,1,1,1,1},{1,1,1,0,1,0,1,1,1},{0,1,0,1,1,1,0,1,0},{1,0,1,1,1,1,1,0,1},{0,1,0,1,1,1,0,1,0}};//邻接矩阵,即边表
    int vnum=9;
    count=0;
    int visited[9];//定义~~~^^^^^^^^^^^^^^^^^^^
    for(i=0;i

   
}   

1 回复
#2
非死亡!2011-11-09 18:47
没看懂?
1