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;
    }
  • 相关阅读:
    加工零件(Dijkstra)
    尼克的任务(DP)
    挖地雷(记忆化搜索)
    滑雪(DP,记忆化搜索)
    子串和子序列(DP)
    八皇后(DFS)
    打印feign报错日志
    restTemplate 踩坑
    共享全局对象
    获取当月多少天
  • 原文地址:https://www.cnblogs.com/invoid/p/5499033.html
Copyright © 2011-2022 走看看