题目概述

求 n×mn\times m 网格中的三角形个数。

解题报告

首先肯定是用总方案数 (n3)n\choose 3 减去不合法的方案数要方便很多。但是怎么求不合法(三点共线)的方案数?

有个结论是横长为 xx 纵长为 yy 的线段中整点的个数为 gcd(x,y)+1gcd(x,y)+1 ,yy一下不难得出。

那么只要枚举 x,yx,y ,然后算出共线三角形的方案数 gcd(x,y)−1gcd(x,y)-1 ,再把这条线段放入网格(共有 (n−x+1)(m−y+1)(n-x+1)(m-y+1) 种方案)就行了。

示例程序

#include<cstdio>
using namespace std;
typedef long long LL;int n,m;LL ans;#define C(x) ((LL)(x)*((x)-1)*((x)-2)/6)
int gcd(int a,int b) {if (!b) return a;return gcd(b,a%b);}
int main()
{freopen("program.in","r",stdin);freopen("program.out","w",stdout);scanf("%d%d",&m,&n);n++;m++;ans=C(n*m);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) if (i>1||j>1){LL now=(LL)(n-i+1)*(m-j+1)*(gcd(i-1,j-1)-1);ans-=now;if (i-1&&j-1) ans-=now;}return printf("%lld\n",ans),0;
}

【组合】BZOJ3505(Cqoi2014)[数三角形]题解相关推荐

  1. [CQOI2014]数三角形 题解(找规律乱搞)

    题面 其实这道题不用组合数!不用容斥! 只需要一个gcd和无脑找规律(滑稽 乍一看题目,如果单纯求合法三角形的话情况太多太复杂,我们可以从局部入手,最终扩展到整体. 首先考虑这样的情况: 类似地,我们 ...

  2. bzoj3505 / P3166 [CQOI2014]数三角形

    P3166 [CQOI2014]数三角形 前置知识:某两个点$(x_{1},,y_{1}),(x_{2},y_{2})\quad (x_{1}<x_{2},y_{1}<y_{2})$所连成 ...

  3. P3166 [CQOI2014]数三角形(组合数学)

    P3166 [CQOI2014]数三角形(组合数学) 整点三角形个数. 正难则反,求出总方案和共线三角形方案数即可. 总方案:C((n+1)(m+1),3)C((n+1)(m+1),3)C((n+1) ...

  4. 2023NHOI数三角形题解

    第五题数三角形(e.cpp)[题目描述]已知一个包含n个非负整数的数组a,要从中选出三个数作为三角形的三条边的边长,有多少种不同的选法.注意:要组成三角形需要满足的条件是任意两边之和大于第三边.[输入 ...

  5. 【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD

    我们先把所有三角形用排列组合算出来,再把一行一列上的三点共线减去,然后我们只观察向右上的三点共线,向左上的乘二即可,我们发现我们如果枚举所有的两边点再乘中间点的个数(GCD),那么我们发现所有的两边点 ...

  6. 洛谷 P3166 [CQOI2014]数三角形(gcd+组合计数)

    题目描述 给定一个 N×MN\times MN×M 的网格,请计算三点都在格点上的三角形共有多少个.注意三角形的三点不能共线. 输入格式 输入一行,包含两个空格分隔的正整数 MMM 和 NNN . 输 ...

  7. BZOJ 3505 [Cqoi2014]数三角形(组合数学)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3505 [题目大意] 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个. 注 ...

  8. bzoj 3505: [Cqoi2014]数三角形

    Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 970  Solved: 595 [Submit][Status][Discuss] Descript ...

  9. P3166 [CQOI2014]数三角形

    文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...

  10. P3166 [CQOI2014]数三角形(结论)

    https://www.luogu.com.cn/problem/P3166 思路: cf也有一道几乎一致的题,但是那题是2e3个点,可以n^2logn,先算出总数C(n,3),然后预处理经过某个点的 ...

最新文章

  1. 工厂模式理解了没有?
  2. GIT使用总结(二)
  3. Linux怎么互相ping通,主机+虚拟机Ubuntu+开发板互相ping通
  4. 女性养生需知的16条健康戒律
  5. C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
  6. 8种主流深度学习框架介绍
  7. Oracle_PL/SQL developer拷贝粘贴中文乱码问题
  8. requirejs与echart的一些问题
  9. iOS底层探索之类的加载(二): realizeClassWithoutSwift分析
  10. Office2010安装需要MSXML版本6.10.1129.0的方法
  11. 2021年度国内网络安全事件总结
  12. 了解黑客经常使用哪些工具
  13. “有意思”的英语单词(5)
  14. 路由token验证和路由守卫~~狂徒李四
  15. php图形验证码验证,php图片验证码代码
  16. vim的安装以及基础使用方法;
  17. ArcScene制作三维地图-三维模型
  18. 微信小程序网络字体安卓实机无法加载解决方案
  19. 北京公共自行车租赁方法_百度知道
  20. Python实现炸金花小游戏

热门文章

  1. 一封谷歌账号辅助邮箱变更的广告邮件
  2. 伊利诺伊香槟大学计算机专业排名,伊利诺伊大学香槟分校专业排名一览及最强专业推荐(QS世界大学排名)...
  3. mysql 关键字 desc_mysql数据库表字段使用DESC等关键字报错及解决方法
  4. Python~numpy.random.seed()方法
  5. mediawiki 各种扩展整理
  6. Enterprise Architect安装使用
  7. 从投入产出简析直复营销
  8. Leetcode刷题100天—剑指 Offer 50. 第一个只出现一次的字符(队列)—day13
  9. 《卓有成效的管理者》读书笔记(二)——卓有成效是可以学会的
  10. 金蝶系统登不上服务器270,电脑进不了金蝶软件,显示Automation错误270