题解 | #体操队形#

体操队形

https://ac.nowcoder.com/acm/problem/229386

思路

dfs

过程

alt

代码

#include <iostream>
#include <unordered_map>

using namespace std;

int a[20], n, ans;
bool st[20];

void dfs(int pos)
{
    if(pos == n + 1)
    {
        ans ++;
        return;
    }
    
    for(int i = 1;i <= n;i ++)
    {
        if(!st[i])
        {
            if(st[a[i]]) return;
            
            st[i] = true;
            dfs(pos + 1);
            st[i] = false;
        }
    }
}

int main()
{
    cin >> n;
    for(int i = 1;i <= n;i ++) cin >> a[i];
    dfs(1);
    cout << ans << endl;
    return 0;
}
全部评论

相关推荐

03-11 21:46
西北大学 Java
河和静子:这只是实习工资,我学长北大通班博一的,他同学被这家天天发邮件让他去实习,一个月10w
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务