bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1231
【题解】
状压dp!f[S][i]表示状态为S,最后一个奶牛为i的方案数,枚举前一个奶牛判断即可。

# include <stdio.h> # include <string.h> # include <iostream> # include <algorithm> // # include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int M = (1 << 17) + 10, N = 23; const int mod = 1e9+7; # define RG register # define ST static int n, K, a[N], t[N], tn; ll f[M][N]; inline int ABS(int x) {return x>=0 ? x : -x;} int main() { cin >> n >> K; for (int i=1; i<=n; ++i) cin >> a[i]; for (int i=1; i<=n; ++i) f[1<<i-1][i] = 1; for (int sta = 1; sta < (1<<n); ++sta) { tn = 0; for (int i=1; i<=n; ++i) if(sta & (1<<i-1)) t[++tn] = i; if(tn == 1) continue; for (int i=1; i<=tn; ++i) for (int j=1; j<=tn; ++j) { if(j == i) continue; if(ABS(a[t[j]] - a[t[i]]) > K) f[sta][t[i]] += f[sta^(1<<t[i]-1)][t[j]]; } } ll ans = 0; for (int i=1; i<=n; ++i) ans += f[(1<<n)-1][i]; cout << ans; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构