实验室

 

40分暴搜:

源代码:

#include<cstdio>
#include<algorithm>
#define INF 1000000007
using namespace std;
int N,A,B,K;
long long Ans(0);
void DFS(int t,int Num) //暴力也不会打的蒟蒻。
{
    if (Num==K)
    {
        Ans=(Ans+1)%INF;
        return;
    }
    for (int a=1;a<abs(t-B);a++) //用总值来表示状态,值得学习。
    {
        if (t+a<=N)
        {
            DFS(t+a,++Num);
            Num--;
        }
        if (t-a>=1)
        {
            DFS(t-a,++Num);
            Num--;
        }
    }
}
int main()
{
    scanf("%d%d%d%d",&N,&A,&B,&K);
    DFS(A,0);
    printf("%d",Ans);
    return 0;
}

 

60分DP:

DP正解:

posted @ 2016-11-01 10:22  前前前世。  阅读(146)  评论(0编辑  收藏  举报