程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU1312 Red and Black 題解

HDU1312 Red and Black 題解

編輯:C++入門知識

HDU1312 Red and Black 題解


一條遞歸搜索法題目,使用遞歸搜索法,但是實際不用重復計算方格。

思路是:

1 每搜索一個方格就改變當前方格的值為 ‘*’,或者任何其他非'.'的值,代表該方格已經走過了

2 遞歸的時候不回復這個方格的值,就實際上不用重復搜索這個方格了,故此不用回溯


#include 
#include 
#include 
#include 
using namespace std;
int R, C, blacks;
vector board;

inline bool isLegal(int r, int c)
{
    return r>=0 && c>=0 && r>C>>R && C)
    {
        board.clear();
        for (int i = 0; i < R; i++)
        {
            cin>>s;
            board.push_back(s);
        }
        blacks = 0;
        for (unsigned i = 0; i < board.size(); i++)
        {
            for (unsigned j = 0; j < board[0].size(); j++)
            {
                if ('@' == board[i][j])
                {
                    getBlacks((int)i, (int)j);
                    goto out;
                }
            }
        }
out:;
        printf("%d\n", blacks);
    }
    return 0;
}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved