码迷,mamicode.com
首页 > 其他好文 > 详细

【递归】POJ2965-The Pilots Brothers' refrigerator

时间:2015-07-31 00:59:12      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

和POJ1753的方法一致,唯一不同的是需要记录路径,只需添加一个全集变量的path路径即可。

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 const int INF=100000;
 5 int map[4][4];
 6 int path[4][4];
 7 int maxpath[4][4];
 8 int ans=INF;
 9 
10 void open(int step,int turn)
11 {
12     int tempmap[4][4];
13     if (turn>=ans) return;
14     if (step==16)
15     {
16         int sum=0;
17         for (int i=0;i<4;i++)
18             for (int j=0;j<4;j++) sum+=map[i][j];
19         if (sum==0)
20         {
21             ans=turn;
22             for (int i=0;i<4;i++)
23                 for (int j=0;j<4;j++) maxpath[i][j]=path[i][j];
24         }
25     }
26     else
27     {
28         for (int i=0;i<4;i++)
29             for (int j=0;j<4;j++) tempmap[i][j]=map[i][j];
30         for (int d=0;d<2;d++)
31         {
32             int x=step/4,y=step%4;
33             path[x][y]=d;
34             if (d==1)
35             {
36                 map[x][y]=1-map[x][y];
37                 for (int i=0;i<4;i++)
38                 {
39                     map[i][y]=1-map[i][y];
40                     map[x][i]=1-map[x][i];
41                 }
42             }
43             open(step+1,turn+d);
44             for (int i=0;i<4;i++)
45                 for (int j=0;j<4;j++) map[i][j]=tempmap[i][j];
46         }
47     }
48 }
49 
50 int main()
51 {
52     for (int i=0;i<4;i++)
53     {
54         char c;
55         for (int j=0;j<4;j++) 
56         {
57             scanf("%c",&c);
58             if (c==-) map[i][j]=0; 
59                         else map[i][j]=1;
60         }
61         getchar();
62     }
63     open(0,0);
64     cout<<ans<<endl;
65     for (int i=0;i<4;i++)
66         for (int j=0;j<4;j++)
67             if (maxpath[i][j]==1) cout<<i+1<< <<j+1<<endl;
68     return 0;
69 }

【递归】POJ2965-The Pilots Brothers' refrigerator

标签:

原文地址:http://www.cnblogs.com/iiyiyi/p/4690871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!