• BZOJ 2916: [Poi1997]Monochromatic Triangles [计数]


    题意:空间中有n个点,任意3个点不共线。每两个点用红线或者蓝线连接,如果一个三角形的三边颜色相同,那么称为同色三角形。给你一组数据,计算同色三角形的总数。


    考虑补集,异色三角形
    每个点的边红色和蓝色两条边组成的一定是异色
    每个异色会算两遍

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    const int N=1005;
    inline int read(){
    	char c=getchar();int x=0,f=1;
    	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    	while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    	return x*f;
    }
    
    int n, m, a[N];
    int main() {
    	freopen("in","r",stdin);
    	n=read(); m=read();
    	for(int i=1; i<=m; i++) a[read()]++, a[read()]++;
    	ll all=n*(n-1)*(n-2)/6, dif=0;
    	for(int i=1; i<=n; i++) dif += a[i]*(n-1-a[i]);
    	dif/=2;
    	printf("%lld
    ", all-dif);
    }
    
    
  • 相关阅读:
    Java-数据字符串进行四舍五入
    Git本地安装及汉化
    Navicat安装教程
    Jdk+maven安装
    系列文章
    @PathVariable
    feign组件
    Lombok
    常见Jar包的用途
    iOS archive(归档)的总结
  • 原文地址:https://www.cnblogs.com/candy99/p/6617745.html
Copyright © 2020-2023  润新知