关注
也可以把边集状压存下来,用set判重就好。 #include <bits/stdc++.h>
using namespace std;
const int N = 10;
int G[N][N];
vector<pair<int, int>> edges;
map<pair<int, int>, int> dic;
int getid(int x, int y)
{
if (x > y) swap(x, y);
assert(x < y);
if (dic[{x, y}]) return dic[{x, y}];
return dic[{x, y}] = dic.size();
}
long long check()
{
long long hash = 0;
for (auto& e : edges)
{
int u = p[e.first], v = p[e.second];
if (G[u][v])
hash |= 1LL << getid(u, v);
else
return -1;
}
return hash;
}
int main()
{
int n, a, b;
while (~scanf("%d%d%d", &n, &a, &b))
{
memset(G, 0, sizeof(G));
dic.clear();
edges.clear();
for (int i = 0, u, v; i < a; i++)
{
scanf("%d%d", &u, &v);
--u, --v;
edges.emplace_back(u, v);
}
for (int i = 0, u, v; i < b; i++)
{
scanf("%d%d", &u, &v);
--u, --v;
G[u][v] = G[v][u] = 1;
getid(u, v);
}
for (int i = 0; i < n; i++) p[i] = i;
set<long long> s;
do
{
int tmp = check();
if (~tmp) s.insert(tmp);
} while (next_permutation(p, p + n));
int ans = s.size();
printf("%d\n", ans);
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 论秋招对个人心气的改变 #
2808次浏览 65人参与
# 牛客AI体验站 #
1516次浏览 58人参与
# 刚入职的你踩过哪些坑 #
2127次浏览 55人参与
# 一张图晒一下你的AI员工 #
1339次浏览 43人参与
# 程序员找工作至少要刷多少题? #
3785次浏览 66人参与
# 在大厂上班是一种什么样的体验 #
1654次浏览 25人参与
# 关于春招/暑期实习,你想知道哪些信息? #
2377次浏览 62人参与
# 为了减少AI幻觉,你注入过哪些设定? #
867次浏览 32人参与
# 我现在比当时_,你想录用我吗 #
2259次浏览 39人参与
# 程序员能干到多少岁? #
3159次浏览 47人参与
# 产品人求职现状 #
320149次浏览 2422人参与
# 你的工资什么时候发? #
55386次浏览 344人参与
# AI Coding的使用心得 #
1272次浏览 36人参与
# 实习,不懂就问 #
162400次浏览 1450人参与
# 金三银四,你有感觉到吗 #
679254次浏览 6047人参与
# 帆软软件工作体验 #
12325次浏览 67人参与
# 晒晒你司的新年福利 #
2259次浏览 38人参与
# 选offer应该考虑哪些因素 #
141305次浏览 989人参与
# 软开人,秋招你打算投哪些公司呢 #
179795次浏览 1378人参与
# 你投了多少份简历了? #
421231次浏览 3929人参与
