题目大意:见刘汝佳《算法竞赛入门经典——训练指南》P173。

解题思路:

  如果要直接求所有单色三角形的个数似乎不简单,正难则反,先求出所有非单色三角形 cnt,answer = C(n,3)- cnt。

  首先,对于每一个非单色三角形,一定有2个点对应一对异色边,那么我们只需要统计每一个点连接的红边或者蓝边数 t,则这个点连接的异色三角形个数为:t*(n - 1 - t),把各边的异色三角形个数加起来。按照这种方式,对于每一个非单色三角形我们都会从它的2个连接着一对异色边的点计算各一次,所以我们要将得到的异色三角形总数除以二就可以得到正确的 cnt。

AC代码:

 #include <cstdio>
#include <cstring>
#include <iostream> using namespace std;
typedef long long ll;
const int maxn=;
bool color[maxn][maxn];
int main()
{
int T,tmp;
int N;
scanf("%d",&T);
while(T--){
ll t1=;
scanf("%d",&N);
for(int i=;i<N;i+=){
for(int j=i+;j<=N;j+=){
scanf("%d",&tmp);
if(tmp) color[i][j]=color[j][i]=true;
else color[i][j]=color[j][i]=false;
}
}
for(int i=;i<=N;i++){
ll on=;
for(int j=;j<=N;j++){
if(i==j) continue;
if(color[i][j]) on++;
}
t1+=(on*(N--on));
}
ll ans=(ll)N*(N-)*(N-)/-t1/;
printf("%lld\n",ans);
}
return ;
}

UVALive5846的更多相关文章

  1. TF之RNN:matplotlib动态演示之基于顺序的RNN回归案例实现高效学习逐步逼近余弦曲线—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIME_STEP ...

  2. TF之RNN:TensorBoard可视化之基于顺序的RNN回归案例实现蓝色正弦虚线预测红色余弦实线—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIME_STEP ...

  3. LA 5846 霓虹灯广告牌(单色三角形问题)

    https://vjudge.net/problem/UVALive-5846 题意: 圆周上有n个点,两两相连,只能涂红色或蓝色.求单色三角形的个数. 思路: 这个问题在训练指南105页有详细讲解. ...

随机推荐

  1. Linux网络服务第四章部署yum仓库

    第四章部署yum仓库服务 1.笔记 systemctl start 命令 :重启 systemctl enable 命令 :开机自启动 netstat -anput | grep 命令:查看是否开启 ...

  2. 2 个案例带你迅速入门 Python Flask 框架

    Flask 是 python 中非常流行的一个 web 框架,容易学习.这篇文章主要通过 2 个实际案例讲解 Flask 如何使用.第一个例子是实现一个调用公交车到站信息的接口服务:第二个例子是通过接 ...

  3. AIX如何点亮HBA卡

    不要选中分区,选择系统管理下的服务器即可 LED状态----->启动Advanced System Management(ASM) UserID:  admin Password:admin S ...

  4. Flutter仿网易云音乐:播放界面

    写在前头 本来是要做一个仿网易云音乐的flutter项目,但是因为最近事情比较多,项目周期跨度会比较长,因此分几个步骤来完成.这是仿网易云音乐项目系列文章的第一篇.没有完全照搬网易云音乐的UI,借鉴了 ...

  5. idea jdk版本切换

    为什么80%的码农都做不了架构师?>>>   打开file-peoject structure,或者 改完project后,点击models里面的sources 和dependenc ...

  6. extend()和append()区别

    extend()和append()都可以用来添加. 例: a = [1,2,3,4,5,6] b = [7,8,9,10] c = {'aa':123,'bb':456,'cc':789} 1.    ...

  7. 数学--数论--HDU1222 狼和兔子(最大公约数)

    问题描述 有一座周围有n个洞的小山.孔从0到n-1有符号. 兔子必须藏在其中一个洞中.狼以逆时针方向搜索兔子.他第一个进入的洞是一个用0签名的洞.然后,他将每m个洞进入一个洞.例如,m = 2和n = ...

  8. pycharm(py 文件中添加作者、时间)

    1.打开 Pycharm,点击 File,再找到 Settings... 2.选择 Editor ----> File and Code Templates ----> Python Sc ...

  9. centos7 源码安装nginx

    1. 安装编译所需要的工具包 yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 2. 安装ngi ...

  10. 真香!PySpark整合Apache Hudi实战

    1. 准备 Hudi支持Spark-2.x版本,你可以点击如下链接安装Spark,并使用pyspark启动 # pyspark export PYSPARK_PYTHON=$(which python ...