P1019 [NOIP2000 提高组] 单词接龙

网址如下:P1019 [NOIP2000 提高组] 单词接龙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

很怪,不知道该说什么

我试了题目给的第一个测试点的输入,发现输出和测试点的一样,但是还是WA

不是很懂为什么

有没有大佬帮我看一下

代码如下:

cs 复制代码
#include<stdio.h>
#include<string.h>
typedef struct Word{
    char str[101];//单词
    int m;//剩余使用次数
    int l;//单词的长度
}Word;
void dg(int len);
Word word[20];
int maxn, maxlen, n;
char c, str_m[1000];

int main(void)
{
    //输入
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        scanf("%s", &word[i].str);
        word[i].m = 2, word[i].l = (int)strlen(word[i].str);
        maxlen = (maxlen > word[i].l) ? maxlen : word[i].l;
    }
    getchar(), c = getchar();
    //递归遍历找开头
    for(int i = 0; i < n; i++)
        if(c == word[i].str[0])
        {
            word[i].m--, strcpy(str_m, word[i].str);
            dg(word[i].l);
            word[i].m++;
        }
    //输出
    printf("%d", maxn);

    return 0;
}
void dg(int len)
{
    //更新最大长度
    maxn = (maxn > len) ? maxn : len;
    //指针作为比较对象
    const char * p = (maxlen <= len) ? &str_m[len - maxlen + 1] : &str_m[1];
    int tmp = (maxlen <= len) ? maxlen - 1 : len - 1;
    //遍历寻找下一个单词
    while(tmp)
    {
        for(int i = 0; i < n; i++)
        {
            if(!word[i].m || tmp >= word[i].l)  continue;
            char * t_p = strstr(word[i].str, p);
            if(t_p == word[i].str)//如果匹配对象在字符串开头部分
            {
                word[i].m--, strcpy(&str_m[len], &word[i].str[tmp]);
                dg(len + word[i].l - tmp);
                word[i].m++, str_m[len] = '\0';
            }
        }
        tmp--, p++;
    }
}

会是因为编译器不同吗?

相关推荐
крон39 分钟前
【Auto.js例程】华为备忘录导出到其他手机
开发语言·javascript·智能手机
zh_xuan1 小时前
c++ 单例模式
开发语言·c++·单例模式
老胖闲聊2 小时前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1182 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
曹勖之2 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
豆沙沙包?3 小时前
2025年- H77-Lc185--45.跳跃游戏II(贪心)--Java版
java·开发语言·游戏
军训猫猫头3 小时前
96.如何使用C#实现串口发送? C#例子
开发语言·c#
liuyang-neu3 小时前
java内存模型JMM
java·开发语言
不爱写代码的玉子4 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#
我很好我还能学5 小时前
【面试篇 9】c++生成可执行文件的四个步骤、悬挂指针、define和const区别、c++定义和声明、将引用作为返回值的好处、类的四个缺省函数
开发语言·c++