1260. Nudnik Photographer

来源:互联网 发布:logo软件下载 编辑:程序博客网 时间:2024/05/16 04:44

我在做这道题的时候首先用的是回溯法,但是交上地 时候显示超时,下面我把用回溯法的代码贴出来。

#include <stdio.h>#include <math.h>int n,flag=0;int b[100],a[100];int main(){    void f(int x);    int i,j,m,t;    scanf("%d",&n)!=EOF        flag=0;        for(i=1;i<=n;i++)        {            a[i]=1;        }        b[1]=1;        if(n>=2)        {          f(2);        }else        {            flag=1;        }        printf("%d ",flag);    return 0;}void f(int x){    int i,j;    for(i=2;i<=n;i++)    {        if(a[i]==1&&abs(b[x-1]-i)<=2)        {            b[x]=i;            a[i]=0;            if(x<n)            {                f(x+1);            }else            {                flag+=1;            }            a[i]=1;        }    }}

 

代码:

#include <stdio.h>int main(){    int i,j,n,m,s,t;    int a[100];    a[1]=1;a[2]=1;a[3]=2;    scanf("%d",&n);    for(i=4;i<=n;i++)    {        a[i]=a[i-1]+a[i-3]+1;    }    printf("%d\n",a[n]);    return 0;}


 

	
				
		
原创粉丝点击