题目链接

问题分析

可以先任意选\(3\)个数,然后减去三点共线的部分。

三点共线又分\(2\)种情况:

  • 横的或者竖的。这一部分方案数是\(n\times{m\choose 3}+m\times {n\choose3}\)。
  • 斜的。不妨设线段一个端点在\((1,1)\),另一个端点在\((i,j)\),\(i,j>1\)。那么线段上的点总共有\(\gcd(i,j)+1\)个点。所以一条这样的线段的贡献是\(\gcd(i,j)-1\)。然后这样的线段共有\((n-i+1)\times(m-j+1)\)条,然后由于对称还要乘以二。

参考程序

#include <cstdio>
long long C3( long long n ) {
return n * ( n - 1 ) * ( n - 2 ) / 6;
}
long long gcd( long long a, long long b ) {
long long m = a % b;
while( m ) {
a = b; b = m; m = a % b;
}
return b;
}
int main() {
long long n, m;
scanf( "%lld%lld", &n, &m ); ++n, ++m;
long long Ans = C3( n * m );
Ans -= n * C3( m ) + m * C3( n );
for( long long i = 2; i <= n; ++i )
for( long long j = 2; j <= m; ++j ) {
long long t = gcd( i - 1, j - 1 ) + 1;
if( t >= 3 )
Ans -= ( n - i + 1 ) * ( m - j + 1 ) * ( t - 2 ) * 2;
}
printf( "%lld\n", Ans );
return 0;
}

「CQOI2014」数三角形的更多相关文章

  1. LibreOJ2241 - 「CQOI2014」排序机械臂

    Portal Description 给出一个\(n(n\leq10^5)\)个数的序列\(\{a_n\}\),对该序列进行\(n\)次操作.若在第\(i\)次操作前第\(i\)小的数在\(p_i\) ...

  2. 「SDOI2014」数数 解题报告

    「SDOI2014」数数 题目描述 我们称一个正整数 \(N\) 是幸运数,当且仅当它的十进制表示中不包含数字串集合 \(S\) 中任意一个元素作为其子串. 例如当 \(S=(\)22, 333, 0 ...

  3. 【LOJ】#2239. 「CQOI2014」危桥

    LOJ#2239. 「CQOI2014」危桥 就是先把每条边正着连一条容量为2的边,反着连一条容量为2的边 显然如果只有一个人走的话,答案就是一个源点往起点连一条容量为次数×2的边,终点往汇点连一个次 ...

  4. 【LOJ】#2983. 「WC2019」数树

    LOJ2983. 「WC2019」数树 task0 有\(i\)条边一样答案就是\(y^{n - i}\) task1 这里有个避免容斥的方法,如果有\(i\)条边重复我们要算的是\(y^{n - i ...

  5. BZOJ 3505 【Cqoi2014】 数三角形

    Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个. 下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数m ...

  6. BSOJ 3899 -- 【CQOI2014】 数三角形

    Description 给定一个n*m的网格,请计算三个点都在格点上的三角形共有多少个.下图为4*4的网格上的一个三角形.  注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数 ...

  7. LOJ#2983. 「WC2019」数树

    传送门 抄题解 \(Task0\),随便做一下,设 \(cnt\) 为相同的边的个数,输出 \(y^{n-cnt}\) \(Task1\),给定其中一棵树 设初始答案为 \(y^n\),首先可以发现, ...

  8. LOJ#2983. 「WC2019」数树 排列组合,生成函数,多项式,FFT

    原文链接www.cnblogs.com/zhouzhendong/p/LOJ2983.html 前言 我怎么什么都不会?贺忙指导博客才会做. 题解 我们分三个子问题考虑. 子问题0 将红蓝共有的边连接 ...

  9. 【CQOI2014】数三角形

    题面 题解 考虑使用总数减去不合法的数量 首先将\(n, m\)都加上\(1\),将网格变成坐标系 总数即为\(\large\binom{n\times m}{3}\) 不合法的有三种情况: 三个点在 ...

随机推荐

  1. QQ登陆

    QQ第三方登陆调用接口实现 <?php $appid="101353491"; session_start(); $appkey="df4e46ba7da52f78 ...

  2. 实现一台Linux电脑连接另一台Linux(SSH实现linux之间的免密码登陆)

    怎么实现一台Linux电脑连接另一台Linux电脑? 首先查看是否安装ssh服务:systemctl status sshd.service 启动服务:systemctl start sshd.ser ...

  3. deepin 15.10.1 GTX1060 NVIDIA 驱动安装,双屏显示问题记录

    有一段时间没有用Linux了.由于买了个4k的戴尔显示屏,在deepin系统上无法用,从昨晚到现在,总于解决了我的问题! 问题1:无法直接在深度的显卡驱动管理器哪里直接切换,网上看到很多人都有这个问题 ...

  4. sql server case when

    case具有两种格式:简单Case函数和Case搜索函数 简单case函数 实例:CASE sex     when '1' then '男'     when '2' then'女'     els ...

  5. 第二篇 jQuery 选择器

    2-1,2  table隔行变色 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  6. CSS---解决文本溢出,换行

    当我们设置我的的div,或者其它文本框固定宽度之后,文本内容过多就会出文本溢出(显示在区域外面,不换行的情况). 这时我们可以使用Css中的几个属于来解.有以下的三个属于可以解决问题: 1,word- ...

  7. 多列表zip合并的csv持久化储存

    有时xpath爬取数据之后会返回多个列表,这些列表的长度一样,这时候可以用zip()合并,然后返回一个zip对象,直接传入储存函数,进行持久化储存 例如: name=['张三','李四','王五'] ...

  8. O008、LVM类型的Storage Pool

    参考https://www.cnblogs.com/CloudMan6/p/5277927.html   LVM类型的Storage Pool   不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上  ...

  9. 彻底了解websocket原理

    一.websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP有 1 ...

  10. Spark查询yarn任务日志

    查看日志:yarn logs -applicationId application_xxx 导入到外部文件 yarn logs -applicationId application_xxx >& ...