码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 4869

时间:2014-07-22 23:37:17      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   

一个机智题,可惜比赛的时候没有机智出来

bubuko.com,布布扣
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define mod 1000000009
#define maxn 100009
using namespace std;

ll c[maxn];

void gcd(ll a,ll b,ll &d,ll &x,ll &y)
{
    if(b==0)
    {
        d=a;
        x=1;
        y=0;
    }
    else
    {
        gcd(b,a%b,d,y,x);
        y-=x*(a/b);
    }
}

ll inv(ll a,ll n)
{
    ll d,x,y;
    gcd(a,n,d,x,y);
    return d==1?(x+n)%n:-1;
}

int main()
{
    int m,x,n;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        int low=0,up=0;
        int loww=0,upp=0;
        for(int i=0; i<m; i++)
        {
            scanf("%d",&x);
            loww=n-up;
            upp=n-low;
            if(up>x&&low<x)
                low=(up-x)%2;
            else if(up<=x)
                low=abs(up-x);
            else if(low>=x)
                low=abs(low-x);


            if(upp>x&&loww<x)
                loww=(upp-x)%2;
            else if(upp<=x)
                loww=abs(upp-x);
            else if(loww>=x)
                loww=abs(loww-x);
            up=n-loww;
        }
//        printf("%d %d\n",low,up);
        c[0]=1;
        ll ans=0;
        for(int i=1; i<=n; i++)
        {
            c[i]=(c[i-1]*(n-i+1)%mod*inv(i,mod))%mod;
        }
        for(int i=low; i<=up; i+=2)
        {
            ans+=c[i];
            ans%=mod;
        }
        printf("%I64d\n",ans);
    }
    return 0;
}
View Code

hdu 4869,布布扣,bubuko.com

hdu 4869

标签:style   blog   http   color   os   io   

原文地址:http://www.cnblogs.com/yours1103/p/3861506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!