频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
HDU 1027 Ignatius and the Princess II
2015-01-26 14:06:07         来源:最光阴的专栏  
收藏   我要投稿

这题我使用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

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:2.16 求数组中最长递增子序列
下一篇:Codeforces Round #287 (Div. 2)A,B,C,D,E
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站