程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> HDU 1027 Ignatius and the Princess II

HDU 1027 Ignatius and the Princess II

編輯:關於C++

這題我使用DFS來解決的,但是每次我寫DFS的時候總是坑在遞歸結束的條件上,每次都要糾結,這次也不例外。不過總算解決了。

#include
#include
#include
#include
#include
#include
using namespace std;
const int N=1005;
int ans[N];
bool visited[N];
int n,m;
bool dfs(int id)
{
    if(id==n+1)//就是這裡太糾結了
    {
        m--;
        if(m==0)
            return true;
        return false;
    }
    for(int i=1;i<=n;i++)
    {
        if(visited[i])
            continue;
        visited[i]=true;
        ans[id]=i;
        if(dfs(id+1))
            return true;
        visited[i]=false;
    }
    return false;
}
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(visited,false,sizeof(visited));
        dfs(1);
        for(int i=1;i

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