CodeForces
来源:互联网 发布:室内装修设计软件 编辑:程序博客网 时间:2024/06/06 05:24
原题链接
题意:给定n(1<=n<=10^6)个点组成的完全图,现在从原图中拿走m(0<=m<=10^6)条边到另一个平面上,问一共还能组成多少个三角形。
分析:比赛时一点思路也没有,后来看别人博客写的。求还剩下多少个三角形,比较麻烦,如果求拿走一些边后,破坏啦多少个三角形就比较容易获得答案。我们先设拿走的变为黑边,还留在平面的边为白边。对于任意一个点,他的一条黑边和一条白边加上第三条边(无论黑白)即是一个破环的三角形。这样每个三角形会计算两次(破坏的只能是黑黑白,或者白白黑,前者统计啦两次白黑,后者统计啦两次黑白),然后用C(3,n)减掉破环的三角形就是答案啦。
#include<bits/stdc++.h>const int N=1e6;typedef long long LL;LL d[N+10],ans,n,m,sum;int main(){ int x,y; scanf("%lld%lld",&n,&m); sum=n*(n-1)/2*(n-2)/3; while(m--) {scanf("%d%d",&x,&y); d[x]++;d[y]++; } for(int i=1;i<=n;i++) ans=ans+(d[i]*(n-1-d[i])); ans/=2; printf("%I64d\n",sum-ans); return 0;}
阅读全文
0 0
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- 2016中国大学生程序设计竞赛
- 多线程详解
- POJ 3740 Easy Finding 跳舞链模板
- MyBatis 笔记(一)——快速入门
- 一个小项目
- CodeForces
- Week2
- D
- 线段树
- 去电流程分析---之二
- JDK自带工具类
- RCNN学习笔记(0):rcnn简介
- const引用const指针以及constexpr
- 陈皓写的性能调优