洛谷P3298 [SDOI2013] 泉
考虑容斥。
我们记至少有
base
设为 unsigned long long
)。
点击查看代码
#include <bits/stdc++.h>
#define FL(i, a, b) for(int i = (a); i <= (b); ++i)
#define FR(i, a, b) for(int i = (a); i >= (b); --i)
using namespace std;
typedef unsigned long long ull;
const int N = 1e5 + 10;
const ull base = 1e9 + 7;
int n, k, a[N][6], C[7][7];
unordered_map<ull, int> m;
long long ans;
int main(){
scanf("%d%d", &n, &k);
FL(i, 0, 6){
C[i][0] = 1;
FL(j, 1, i){
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
FL(i, 1, n) FL(j, 0, 5) scanf("%d", &a[i][j]);
FL(s, 0, 63){
int b = __builtin_popcount(s);
unordered_map<ull, int>().swap(m);
if(b >= k){
FL(i, 1, n){
ull v = 0;
FL(j, 0, 5) if(s >> j & 1)
v = v * base + a[i][j];
ans += (((b - k) & 1)? -1ll : 1ll) * (m[v]++) * C[b][k];
}
}
}
printf("%lld\n", ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现