1 条题解

  • 0
    @ 2024-12-24 9:54:29

    C :

    int n,m;
    int s(int x)
    {    
    	if(x<1) 
    		return x+n;   
    	if(x>n) 
    		return x-n;  
    	return x;
    }
    int main()
    {   
    	int a[31][31],i,j;
    	memset(a,0,sizeof(a));
        scanf("%d%d",&n,&m);   
        a[1][2]=a[1][n]=1;
        for (i=2;i<=m;i++)    
            for (j=1;j<=n;j++) 
    	        a[i][j]=a[i-1][s(j-1)]+a[i-1][s(j+1)];   
       printf("%d\n",a[m][1]);  
       return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<iostream>
    using namespace std;
    int m,n;
    int pd(int x)
    {
    	if(x<1)return x+n;
    	if(x>n)return x-n;
    	return x;
    } 
    int main()
    {
    	int f[31][31]={0},i,j;
    	cin>>n>>m;
    	f[1][2]=f[1][n]=1;
    	for(i=2;i<=m;i++)
    	{
    		for(j=1;j<=n;j++)
    		{
    			f[i][j]=f[i-1][pd(j-1)]+f[i-1][pd(j+1)];
    		}
    	}
    	cout<<f[m][1];
    	return 0;
    }
    
    • 1

    信息

    ID
    1112
    时间
    1000ms
    内存
    50MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者