markdown 在线制作ppt json校验和格式化工具

POJ 1321

  1 #include<iostream>
  2 #define MAXN 10
  3 using namespace std;
  4 
  5 char _m[MAXN][MAXN];
  6 bool mark[MAXN];
  7 int n;
  8 void DFS(int row);
  9 int k;
 10 int ans;
 11 int give_num();
 12 int main()
 13 {
 14     //freopen("acm.acm","r",stdin);
 15     int i;
 16     int j;
 17 
 18     while(cin>>n>>k)
 19     {
 20         ans = 0;
 21         //    memset(mark,false,sizeof(mark));
 22         for(i = 0; i < MAXN; ++ i)
 23         {
 24             mark[i] = false;
 25         }
 26         if(n == -1 && k == -1)
 27         {
 28             break;
 29         }
 30         for(i = 0; i < n; ++ i)
 31         {
 32             for(j = 0; j < n; ++ j)
 33             {
 34                 cin>>_m[i][j];
 35             }
 36         }
 37         if(k == 1)
 38         {
 39             cout<<give_num()<<endl;
 40             continue;
 41         }
 42         for(i = 0; i < n; ++ i)
 43         {
 44             if(n-i < k)
 45             {
 46                 break;
 47             }
 48             for(j = 0; j < n; ++ j)
 49             {
 50                 if(_m[i][j] == '#')
 51                 {
 52                     mark[j] = true;
 53                     -- k;
 54                     DFS(i+1);
 55                     ++ k;
 56                     mark[j] = false;
 57                 }
 58             }
 59         }
 60     //    cout<<k<<" - "<<endl;
 61         cout<<ans<<endl;
 62     }
 63 }
 64 
 65 int give_num()
 66 {
 67     int i;
 68     int j;
 69     int sum = 0;
 70     for(i = 0; i < n; ++ i)
 71     {
 72         for(j = 0; j < n; ++ j)
 73         {
 74             if(_m[i][j] == '#')
 75             {
 76                 ++ sum;
 77             }
 78         }
 79     }
 80     return sum;
 81 }
 82 
 83 void DFS(int row)
 84 {
 85     int i;
 86     if(n - row < k)
 87     {
 88         return;        
 89     }
 90     for(i = 0; i < n; ++ i)
 91     {
 92         if(_m[row][i] == '#' && !mark[i])
 93         {
 94             if(k - 1 == 0)
 95             {
 96                 ++ ans;
 97             //    DFS(row+1);
 98                 continue;
 99             }
100             -- k;
101             mark[i] = true;
102             DFS(row+1);
103             mark[i] = false;
104             ++ k;
105     //        DFS(row+1);
106         }
107     }
108 //    if(k - 1 == 0)
109     {
110         DFS(row+1);
111     }
112 }

 

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

技术网站地址: vmfor.com

posted @ 2015-06-09 13:56  GavinHacker  阅读(166)  评论(0编辑  收藏  举报
markdown 在线制作ppt json校验和格式化工具