Codeforces 230E Triangles【思维】
来源:互联网 发布:2017程序员笔记本推荐 编辑:程序博客网 时间:2024/05/22 09:46
题目大意:
从一个N个点的无向完全图中,拿出M条边到另外一个图中,计算两个图中三元环的个数总和。
思路:
考虑新组成的图中,如果一个点的度数为degree【i】的话,这个点在原图的度就是n-1-degree【i】。
不难理解,我们该点i,从新图中拿出一条边,再从原图中剩余部分拿出一条边,就能够组成一个三元环,而且这个三元环是在原图中被删除掉的。
原图中应该有C(n,3)个三元环,那么此时去掉删除部分就是Ans。
那么Ans=C(n,3)-Σ(degree【i】*(n-1-degree【i】));
Ac代码:
#include<stdio.h>#include<string.h>using namespace std;__int64 degree[1500000];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { __int64 output=(__int64)n*(n-1)*(n-2)/6; memset(degree,0,sizeof(degree)); for(int i=1;i<=m;i++) { int x,y;scanf("%d%d",&x,&y); degree[x]++;degree[y]++; } __int64 sum=0; for(int i=1;i<=n;i++) { sum+=(degree[i])*(n-1-degree[i]); } printf("%I64d\n",output-sum/2); }}
阅读全文
0 0
- Codeforces 230E Triangles【思维】
- Codeforces 509E(思维)
- Codeforces Round #142 (Div. 2) E. Triangles
- codeforces 217E 逆向思维
- Codeforces 552D Vanya and Triangles【暴力枚举+思维】
- Codeforces Round #296 (Div. 1) E. Triangles 3000
- CodeForces 682 E.Alyona and Triangles(计算几何)
- CodeForces 15 E.Triangles(组合数学+dp)
- Codeforces 659E New Reform【思维+Dfs】
- Codeforces 733E Sleep in Class【思维】
- Codeforces 808E Selling Souvenirs【思维+Dp】
- Codeforces-888E:Maximum Subsequence(思维)
- [HPU] Triangles [思维]
- Codeforces 155E E. Double Profiles【思维+hash】
- E - Counting Triangles
- Codeforences 15 E triangles
- 解题报告:Codeforces Round #142 (Div. 1) C. Triangles (思维好题)
- Codeforces Round #358 (Div. 2) E. Alyona and Triangles (找面积最大三角形)
- nginx
- Leetcode60 Permutation Sequence (string)
- grep命令
- 类加载机制
- Linux Shell编程入门
- Codeforces 230E Triangles【思维】
- 基于 HED网络TensorFlow 和 OpenCV 实现图片边缘检测
- openstack
- Python 25行代码实现图片转字符画
- Docker中安装OpenvSwitch 附rpm文件下载
- spring boot项目实战:redis
- Go语言 channel详解
- 工作中遇到的问题总结
- Scala(2)-类