zoukankan      html  css  js  c++  java
  • USACO08NOV Mixed Up Cows

    题目传送门

    最近做了好多“奶牛题”


    比较简单的状压DP

    直接记录集合无法转移,还要再加上一维,表示末尾的牛的编号

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    using namespace std;
    #define LL long long
    LL read() {
        LL k = 0, f = 1; char c = getchar();
        while(c < '0' || c > '9') {
            if(c == '-') f = -1;
            c = getchar();
        }
        while(c >= '0' && c <= '9')
          k = k * 10 + c - 48, c = getchar();
        return k * f;
    }
    LL a[20], f[1 << 16][20];
    int main() {
        int n = read(), k = read();
        for(int i = 0; i < n; ++i) a[i] = read(), f[1 << i][i] = 1;
        for(int s = 1; s <= (1 << n) - 1; ++s)
            for(int i = 0; i < n; ++i)
                if((1 << i) & s)
                    for(int j = 0; j < n; ++j)
                        if(i != j && ((1 << j) & s) && abs(a[i] - a[j]) > k) f[s][i] += f[s ^ (1 << i)][j];
        LL ans = 0;
        for(int i = 0; i < n; ++i) 
            ans += f[(1 << n) - 1][i];
        cout << ans;
        return 0;
    }
    
  • 相关阅读:
    UVA 10608 Friends
    UVA 10806 Dijkstra, Dijkstra.
    HDU 3715 Go Deeper
    poj1315
    poj1383
    poj1650
    poj1265
    poj1523
    RedHat9.0虚拟机安装
    注册DirectShow filter时应该注意中文路径
  • 原文地址:https://www.cnblogs.com/morslin/p/11855368.html