http://acm.hdu.edu.cn/showproblem.php?pid=5917

即世界上任意6个人中,总有3个人相互认识,或互相皆不认识。

所以子集 >= 6的一定是合法的。

然后总的子集数目是2^n,减去不合法的,暴力枚举即可。

选了1个肯定不合法,2个也是,3个的话C(n, 3)枚举判断,C(n, 4), C(n, 5)

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;
const int maxn = + ;
int e[maxn][maxn];
const LL MOD = 1e9 + ;
void add(LL &x, LL y) {
x = (x + MOD + y) % MOD;
}
bool ok(int i, int j, int k) {
return ((e[i][j] && e[j][k] && e[k][i]) || (!e[i][j] && !e[j][k] && !e[k][i]));
}
LL po[maxn];
int f;
void work() {
memset(e, false, sizeof e);
int n, m;
scanf("%d%d", &n, &m);
for (int i = ; i <= m; ++i) {
int u, v;
scanf("%d%d", &u, &v);
e[u][v] = e[v][u] = ;
}
LL ans = po[n];
add(ans, -(n + ));
add(ans, -(n * (n - ) / ));
LL t = ;
for (int i = ; i <= n; ++i) {
for (int j = i + ; j <= n; ++j) {
for (int k = j + ; k <= n; ++k) {
if (!ok(i, j, k)) t++;
}
}
}
for (int i = ; i <= n; ++i) {
for (int j = i + ; j <= n; ++j) {
for (int k = j + ; k <= n; ++k) {
for (int h = k + ; h <= n; ++h) {
if (!ok(i, j, k) && !ok(i, j, h) && !ok(i, k, h) && !ok(j, k, h)) t++;
}
}
}
}
for (int i = ; i <= n; ++i) {
for (int j = i + ; j <= n; ++j) {
for (int k = j + ; k <= n; ++k) {
for (int h = k + ; h <= n; ++h) {
for (int ha = h + ; ha <= n; ++ha) {
if (!ok(i, j, k) && !ok(i, j, h) && !ok(i, k, h) && !ok(j, k, h) && !ok(i, j, ha) &&
!ok(i, k, ha) && !ok(i, h, ha) && !ok(j, k, ha) && !ok(j, h, ha) &&
!ok(k, h, ha)) t++;
}
}
}
}
}
t %= MOD;
add(ans, -t);
printf("Case #%d: %lld\n", ++f, ans);
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
po[] = ;
for (int i = ; i <= maxn - ; ++i) {
po[i] = * po[i - ] % MOD;
}
int t;
scanf("%d", &t);
while (t--) work();
return ;
}

最新文章

  1. 练习JavaScript实现梯形乘法表
  2. SAP中删除假脱机请求
  3. Windows环境下的NodeJS+NPM+Bower安装配置步骤
  4. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
  5. Verilog (一) assignment, register and net
  6. php Memcache
  7. IOS设计模式六大法则
  8. NetAnalyzer笔记 之 四. C#版的抓包软件
  9. HDU 3410 Passing the Message
  10. java随机数生成的原理
  11. hightcharts在移动端运用 FastClick后苹果上legend点击失效的解决办法
  12. leetcode 生成杨辉三角形, 118 119 Pascal&#39;s Triangle 1,2
  13. 一个简单的PHP模板引擎
  14. Oracle “CONNECT BY” (层级递归查询)
  15. NIKKEI Programming Contest 2019 翻车记
  16. SE Springer小组之《Spring音乐播放器》可行性研究报告一、二(转载)
  17. F - Proud Merchants
  18. 简单实现&quot;Tomcat&quot;
  19. RavenDb学习(三)静态索引
  20. Linux命令之远程登录与执行远程主机命令

热门文章

  1. 简单的RBAC用户角色权限控制
  2. protocol 和 delegate
  3. T-SQL操作XML 数据类型方法 &quot;modify&quot; 的参数 1 必须是字符串文字。
  4. CentOS 7 配置 mariadb
  5. HBase表数据分页处理
  6. 【转】eclipse中window-&gt;preference选项中没有tomcat的解决方法
  7. 解决Navicat 无法连接mysql8.0
  8. LeetCode: 171 Excel Sheet Column Number(easy)
  9. .Net Core 扩展使用Refit
  10. UML——再回首