这个答案得了25分,剩下5分错哪啦

#include "stdio.h"
#include "string.h"
int book[100000],n,m,k[100000],cot=0;
char str[10000][10000],a[10000][10000],o[10000][10000];
void dfs(int step)
{
    int c=0;
    if(step==n)
    {
        cot++;
        for(int i=0;i<n;i++)
        {
            printf("%s ",a[i]);
        }
        printf("\n");
        return;
    }
    for(int i=0;i<n;i++)
    {
        if(book[i]==0)
        {
            for(int v=0;v<m;v++)
            {
                if(strstr(str[i],o[v])!=NULL&&step+1==k[v])
                {
                    c++;
                }
            }
            if(c==1)
            {
                c=0;
                continue;
            }
            strcpy(a[step],str[i]);
            book[i]=1;
            dfs(step+1);
            book[i]=0;
        }
    }
}
int main()
{
    scanf("%d %d",&n,&m);
    getchar();
    for (int i = 0; i < n; i++) {
        scanf("%s", str[i]);
    }
    for (int i = 0; i < m; i++) {
        scanf("%s %d", o[i],&k[i]);
    }
    dfs(0);
    printf("%d",cot);
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务