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 [问题描述] 在社交网络( ...
随机推荐
- 060 Permutation Sequence 排列序列
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列.按大小顺序列出所有排列情况,并一一标记,可得到如下序列 (例如, n = 3): 1."123" 2. & ...
- CSS3 - CheakBox 开关效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- IIS访问网站出错[要求输入用户名密码]的解决方案
症状: 1.HTTP 500 - 内部服务器错误 2.您不具备使用所提供的凭据查看该目录或页的权限 3.基于所提供的凭据,您没有权限查看此目录或网页.HTTP 错误 401.3 - 访问被资源 ACL ...
- ConfigurationErrorsException: Unrecognized configuration section system.data.
报错 ConfigurationErrorsException: Unrecognized configuration section system.data. (C:\Users\luren\Sou ...
- js之深度克隆、简易克隆
一.js中的对象 谈到对象的克隆,必定要说一下对象的概念. js中的数据类型分为两大类:原始类型和对象类型. (1)原始类型包括:数值.字符串.布尔值.null.undefined(后两个是特殊的原始 ...
- php分页代码及总结
代码部分: <?PHPheader("Content-type:text/html;charset=utf-8");$pageSize = 10;//接收传入的分页码$pag ...
- Windows 7, Visual Studio 2015下编译Webkit
因工作需要,需要编译Windows版本的Webkit,中间走了不少弯路,都记录下来,供大家参考!也随时欢迎大家讨论(QQ群:345802342) 整个编译工作参考的是官方文档:https://webk ...
- 【Python图像特征的音乐序列生成】数据集制作的一些tricks
关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文 ...
- [VC]关于ocx打包为cab的使用
把打包的工具makecert.exe等放在c:/windows/system32/里才能在dos下面使用 注:如果本机使用可以codebase="http://localhost/testa ...
- UVA 10382 Watering Grass (区间覆盖,贪心)
问题可以转化为草坪的边界被完全覆盖.这样一个圆形就换成一条线段. 贪心,从中选尽量少的线段把区间覆盖,按照把线段按左端点排序,记录一个当前已经覆盖区间的位置cur, 从左端点小于等于cur选一个右端点 ...