zoukankan      html  css  js  c++  java
  • C. Shaass and Lights 夜

    http://codeforces.com/contest/294/problem/C

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #include<vector>
    #include<set>
    #include<queue>
    #include<map>
    #include<string>
    #include <iomanip>
    
    using namespace std;
    
    const int INF=0x3f3f3f3f;
    const long long MOD=1000000007;
    const int N=2005;
    long long a[N];
    vector<int>vt;
    long long c[N][N];
    int main()
    {
        //freopen("data.in","r",stdin);
        for(int i=0;i<N;++i)
        for(int j=0;j<=i;++j)
        {
            if(j==0) {c[i][j]=1;continue;}
            if(i==j) {c[i][j]=1;continue;}
            c[i][j]=(c[i-1][j-1]+c[i-1][j])%MOD;
        }
        a[0]=1;
        for(int i=1;i<N;++i)
        a[i]=(a[i-1]*2)%MOD;
        int n,m;
        while(cin>>n>>m)
        {
            vt.clear();
            for(int i=1;i<=m;++i)
            {
                int tmp;
                cin>>tmp;
                vt.push_back(tmp);
            }
            sort(vt.begin(),vt.end());
            long long ans=1;
            for(unsigned int i=1;i<m;++i)
            {
                int k=vt[i]-vt[i-1]-1;
                if(k>1)
                ans=(ans*a[k-1])%MOD;
            }
            vt.insert(vt.begin(),0);
            vt.push_back(n+1);
            int sum=0;
            for(unsigned int i=0;i<vt.size();++i)
            {
                int k=0;
                if(i>0)
                k=vt[i]-vt[i-1]-1;
                if(sum>0&&k>0)
                ans=(ans*c[sum+k-1+1][k])%MOD;
                sum+=k;
            }
            cout<<ans<<endl;
        }
        return 0;
    
    }
    

      

  • 相关阅读:
    yii中通过HTTP post接收
    网络编程
    python 异常处理
    面向对象(2)
    面向对象
    什么是模块精讲
    常用模块二
    各种推导式详解
    匿名函数
    迭代器生成器
  • 原文地址:https://www.cnblogs.com/liulangye/p/3011032.html
Copyright © 2011-2022 走看看