zoukankan      html  css  js  c++  java
  • bzoj1079: [SCOI2008]着色方案

    dp.以上次染色时用的颜色的数量和每种数量所含有的颜色作状态。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int mod = 1000000007;
    
    
    long long f[6][16][16][16][16][16];
    int c[6];
    int k;
    
    long long dfs(int x,int a,int b,int c,int d,int e) {
        long long &res = f[x][a][b][c][d][e];
        if(res!=-1) return res;
        if(a+b+c+d+e==0) return res=1;
        
        res=0;
        if(a) res+=(a-(x==2))*dfs(1,a-1,b,c,d,e);
        if(b) res+=(b-(x==3))*dfs(2,a+1,b-1,c,d,e);
        if(c) res+=(c-(x==4))*dfs(3,a,b+1,c-1,d,e);
        if(d) res+=(d-(x==5))*dfs(4,a,b,c+1,d-1,e);
        if(e) res+=(e)*dfs(5,a,b,c,d+1,e-1);
        res%=mod;
        return res;
    }
    
    
    
    int main() {
        scanf("%d",&k);
        for(int i=1,x;i<=k;i++) {
            scanf("%d",&x);
            c[x]++;    
        }
        memset(f,-1,sizeof(f));
        printf("%lld
    ",dfs(0,c[1],c[2],c[3],c[4],c[5]));    
        return 0;
    }
  • 相关阅读:
    requirejs 第一个实例
    ionic + cordova 环境搭建
    免安装mysql配置
    ConcurrentHashMap
    volatile和synchronized
    zookeeper集群安装
    题目
    Nginx
    CountDownLatch
    自己总结
  • 原文地址:https://www.cnblogs.com/invoid/p/5499033.html
Copyright © 2011-2022 走看看