Kattis - doubleclique (图论)
From : North American Invitational Programming Contest 2018
给你一个图,以及它的补图。如果部分点在原图中是团,并且其他的所有点在补图中也是团,那么就叫做一个双团。
要求计算图中双团的数量。
这篇博客使我理解了这个问题:zro https://www.cnblogs.com/clrs97/p/8730429.html orz
如果其他点在补图中构成团,那么这些点在原图中是一个独立集。
可以想到,满足条件的状态是 (团的点数) × (团的点数 - 1) + 独立集点的度数和 = 团点的度数和。
因为 (团的点数) × (团的点数 - 1) = 团中所有边构成的度数,所以剩下的度数就是团的点 与 独立集的点之间的边所构成的度数了。
这样我们可以找出一种可行方案。
那么剩下的方案,可能是
1:团中一个点加入到独立集中:
2:也可能是独立集中一个点加入到团中
3:1+2
分别统计答案即可。
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn = *1e5 + ;
const LL M = 1e9+; int d[maxn], sum[maxn]; int main()
{
int n, m;
scanf("%d%d", &n, &m);
for (int i = ; i <= m; i++)
{
int x, y;
scanf("%d%d", &x, &y);
d[x]++, d[y]++;
}
sort(d+, d++n);
reverse(d+, d++n); for (int i = ; i <= n; i++)
sum[i] = sum[i-] + d[i]; LL ans = ;
int mid = ;
for (int i = ; i <= n; i++)
if (1ll*i*(i-)+sum[n]-sum[i] == sum[i])
{
ans++;
mid = i;
break;
} //找到一种可行方案。
//团中的点的度数一定大于等于独立集中的点的度数,所以排个序直接枚举断点即可。 if (!ans)
{
printf("0\n");
return ;
}
for (int i = ; i <= mid; i++)
if (1ll*(mid-)*(mid-)+sum[n]-sum[mid]+d[i] == sum[mid]-d[i]) ans++;
for (int i = mid+; i <= n; i++)
if (1ll*(mid+)*mid+sum[n]-sum[mid]-d[i] == sum[mid]+d[i]) ans++; LL x = , y = ;
for (int i = ; i <=mid; i++)
if (d[i] == d[mid]) x++;
for (int i = mid+; i <= n; i++)
if (d[i] == d[mid]) y++; ans = (ans+x*y)%M;
printf("%lld", ans);
}
Kattis - doubleclique (图论)的更多相关文章
- [leetcode] 题型整理之图论
图论的常见题目有两类,一类是求两点间最短距离,另一类是拓扑排序,两种写起来都很烦. 求最短路径: 127. Word Ladder Given two words (beginWord and end ...
- 并查集(图论) LA 3644 X-Plosives
题目传送门 题意:训练指南P191 分析:本题特殊,n个物品,n种元素则会爆炸,可以转移到图论里的n个点,连一条边表示u,v元素放在一起,如果不出现环,一定是n点,n-1条边,所以如果两个元素在同一个 ...
- NOIp 2014 #2 联合权值 Label:图论 !!!未AC
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- HDU 5521 [图论][最短路][建图灵感]
/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合.每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相 ...
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- [转] POJ图论入门
最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意: ...
- HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- Codeforces 553C Love Triangles(图论)
Solution: 比较好的图论的题. 要做这一题,首先要分析love关系和hate关系中,love关系具有传递性.更关键的一点,hate关系是不能成奇环的. 看到没有奇环很自然想到二分图的特性. 那 ...
- 图论(floyd算法):NOI2007 社交网络
[NOI2007] 社交网络 ★★ 输入文件:network1.in 输出文件:network1.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 在社交网络( ...
随机推荐
- 关于AQS——独占锁的相关方法(一)
一.序言 Lock接口是juc包下一个非常好用的锁,其方便和强大的功能让他成为synchronized的一个很好的替代品. 我们常用的一个Lock的实现类(好像也是唯一一个只实现了Lock接口的类) ...
- STM32之VCP1/VCAP2引脚的处理
需要根据仔细根据手册来决定这两个引脚是直接接地还是电容下拉到地 转载:STM32的Vcap的问题及解决---原来经验也害人http://bbs.eeworld.com.cn/thread-499497 ...
- webpack.config.js====插件purifycss-webpack,提炼css文件
1. 安装:打包编译时,可以删除一些html中没有使用的选择器,如果html页面中没有class=a class="b"的元素,.a{}.b{}样式不会加载 cnpm instal ...
- htmlparse
<html> <head> <style> textarea{ width:800p ...
- 2017.10.3 QBXT 模拟赛
题目链接 T1 模拟 #include <cstring> #include <cstdio> #define N 105000 int L,R; char s[N]; int ...
- 安装指定版本的minikube
Minikube是什么? Kubernetes集群的安装和部署对于很多初学者来说是一道坎.为了方便大家开发和体验Kubernetes,Kubernetes开源社区提供了可以在本地部署的Minikube ...
- 剑指offer64 数据流中的中位数
priority_queue优先级队列,他的模板声明带有三个参数,priority_queue<Type, Container, Functional> Type 为数据类型, Conta ...
- linux目录结构及文件管理
Linux的目录结构: / 根分区 linux文件系统的起点 /bin 普通用户的命令,普通用户能使用 /sbin 管理员使用的命令,只有管理 ...
- Redis五种数据结构解析
Redis是一个开源的Key-Value存储引擎,它支持string.hash.list.set和sorted set等多种值类型.由于其卓越的性能表现.丰富的数据类型及稳定性,广泛用于各种需要k/v ...
- iBatis自动生成工具Abator
https://blog.csdn.net/k_scott/article/details/8281837 ###首先创建数据库表,然后根据数据库表,生成相应的实体.及其配置文件 https://ww ...