bacmive


私信TA

用户名:bacmive

访问量:17830

签 名:

努力、奋斗

等  级
排  名 308
经  验 5396
参赛次数 0
文章发表 36
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

参考代码:AC(递推,思路借鉴题号1117,“递推”)

#include <stdio.h>

int main()
{
    int i, n;
    long long res[21];
    while (scanf("%d", &n) != EOF)
    {
        res[2] = 1;
        res[3] = 2;
        res[4] = 9;
        if (n<=4)
        {
            printf("%d\n", res[n]);
            continue;
        }
        else
        {
            for (i=5;i<=n;i++)
                res[i]=(res[i-1]+res[i-2])*(i-1);//根据规律可知
            printf("%lld\n",res[n]);
        }
    }
    return 0;
}



参考代码:输出超限(DFS)

#include <stdio.h>
#include <stdlib.h>

int cnt,n;
int *num,*vis;

void dfs(int i)
{
    if(i==n+1)
    {
        cnt++;return;
    }
    int t;
    for(t=1;t<=n;t++)
    {
        if(!vis[t]&&t!=i)
        {
            num[i]=t;
            vis[t]=1;
            dfs(i+1);
            vis[t]=0;
        }
    }
    return;
}

int main()
{
    int i;
    while(scanf("%d",&n))
    {
        cnt=0;
        num=(int *)malloc(sizeof(int)*(n+1));
        vis=(int *)malloc(sizeof(int)*(n+1));
        for(i=0;i<=n;i++) {num[i]=i;vis[i]=0;}
        dfs(1);
        printf("%d\n",cnt);
        free(num);
    }
    return 0;
}







参考代码: 输出超限(全排列,类似题号1163,“排队买票”问题) 

#include <stdio.h>
#include <stdlib.h>
int cnt,n;
int *num;

void pmut(int i)
{
    int j,t,tmp;
    if(i<n)
    {
        for(j=i;j<=n;j++)
        {
            tmp=num[j];
            for(t=j;t>i;t--)
                num[t]=num[t-1];
            num[i]=tmp;

            pmut(i+1);

            for(t=i;t<j;t++)
                num[t]=num[t+1];
            num[j]=tmp;
        }
    }
    else
    {
        int flag=1;
        for(j=1;j<=n;j++)
            if(num[j]==j) {flag=0;break;}
        if(flag) cnt++;
    }
}


int main()
{
    int i;
    while(scanf("%d",&n))
    {
        cnt=0;
        num=(int *)malloc(sizeof(int)*(n+1));
        for(i=0;i<=n;i++) num[i]=i;
        pmut(1);
        printf("%d\n",cnt);
        free(num);
    }
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区