本题题解抄袭
  • 板块题目总版
  • 楼主封禁用户
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/12/20 12:37
  • 上次更新2023/12/20 17:24:05
查看原帖
本题题解抄袭
1098781
封禁用户楼主2023/12/20 12:37

认为Mr_WA 的大号题解在P1255抄袭AzureGlacier 的题解,证据:

AzureGlacier 的题解代码

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int n,len=1,f[5003][5003];//f[k][i]--第k阶台阶所对应的走法数 
void hp(int k)//高精度加法,k来存阶数 
{    
    int i;
    for(i=1;i<=len;i++)
     f[k][i]=f[k-1][i]+f[k-2][i];//套用公式 
    for(i=1;i<=len;i++)             //进位 
     if(f[k][i]>=10)
     {
         f[k][i+1]+=f[k][i]/10;
         f[k][i]=f[k][i]%10;
         if(f[k][len+1])len++;
    }
}
int main()
{
    int i;
    scanf("%d",&n);
    f[1][1]=1; f[2][1]=2;         //初始化 
    for(i=3;i<=n;i++)              //从3开始避免越界 
     hp(i);                         
    for(i=len;i>=1;i--)             //逆序输出 
     printf("%d",f[n][i]);
    return 0;
}

Mr_WA 的大号的题解代码

#include<iostream>
#include<fstream>
#include<cstdio>
#include<cmath>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
using namespace std;
int n,f[5010][5010],len;
void jiafa(int k)//高精加法
{
    for(int i=1; i<=len; i++)//两数相加
        f[k][i]=f[k-1][i]+f[k-2][i];
    for(int i=1; i<=len; i++)//进位
        if(f[k][i]>=10)
        {
            f[k][i+1]+=f[k][i]/10;
            f[k][i]%=10;
            if(f[k][len+1]>0)len++;
        }
}
int main()
{
    cin>>n;
    len=1;
    f[1][1]=1;//预处理
    f[2][1]=2;//预处理
    for(int i=3; i<=n; i++)//开始计算
        jiafa(i);
    for(int i=len; i>=1; i--)//输出
        cout<<f[n][i];
    return 0;
}

希望管理员处理。

2023/12/20 12:37
加载中...