我们先把所有三角形用排列组合算出来,再把一行一列上的三点共线减去,然后我们只观察向右上的三点共线,向左上的乘二即可,我们发现我们如果枚举所有的两边点再乘中间点的个数(GCD),那么我们发现所有的两边点都会形成一个矩形对角线,而且他们的形状一定则贡献一定那么我们可以枚举形状来求贡献和。

#include <cstdio>
typedef long long LL;
LL n,m,ans,N,M;
LL GCD(LL x,LL y){return x==0?y:GCD(y%x,x);
}
int main(){scanf("%lld%lld",&n,&m);N=n+1,M=m+1;LL temp=N*M;ans=temp*(temp-1)*(temp-2)/6LL;ans-=N*M*(M-1)*(M-2)/6LL;ans-=M*N*(N-1)*(N-2)/6LL;for(LL i=1;i<=n;i++)for(LL j=1;j<=m;j++){LL x=GCD(i,j)-1;ans-=(n-i+1)*(m-j+1)*x*2;}printf("%lld",ans);
}

转载于:https://www.cnblogs.com/TSHugh/p/7363017.html

【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD相关推荐

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

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

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

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

  3. [CQOI2014]数三角形 组合数 + 容斥 + gcd

    推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...

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

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

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

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

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

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

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

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

  8. P3166 [CQOI2014]数三角形

    文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...

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

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

最新文章

  1. Python培训:Python有哪些函数?你了解几种?
  2. 001_ZooKeeper简介
  3. 使用TortoiseSVN新建及合并分支图文教程
  4. Android sharedPreference设置缓存时间
  5. P5546-[POI2000]公共串【SAM】
  6. Java 9中的新Regex功能
  7. python学习Day7 数据类型的转换,字符编码演变历程
  8. SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
  9. 做副业(初创业),逻辑其实很简单,无非这两个方向
  10. python+selenium 自动化测试环境搭建
  11. eclipse快速导包快捷键_【IntelliJ IDEA mac新手入门】IDEA如何快速搭建Java开发环境...
  12. 欺骗的艺术——谈谈社会工程学
  13. java飞机大战小游戏
  14. 开心盒子助手3.0版|开心盒子助手工具3.0电脑版
  15. 管家婆登录服务器未响应,管家婆辉煌登录点击下一步没有反应解决办法
  16. C语言作业练习1:输入一个数判断是否为素数
  17. javascript 操作coolie
  18. ai人工智能_人工智能能否赢得奥运
  19. android retrofit实例,Retrofit使用步骤
  20. 为什么只有涨价才能救小米?

热门文章

  1. android 粘性view_android - 如何在RecyclerView中制作粘性标头? (有或没有外部库) - SO中文参考 - www.soinside.com...
  2. mysql表误删回复_mysql数据库数据删除怎么恢复
  3. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
  4. java输入两个整数_Java中从键盘输入多个整数的方法
  5. c char转int_C/C++ 各数据类型占用字节数
  6. Unet实现文档图像去噪、去水印
  7. poj 1872 A Dicey Problem (bfs+WordFinal题)
  8. 浅谈UWB室内定位(三)
  9. [洛谷P5068][Ynoi2015]我回来了
  10. 5G:无人驾驶的“超级英雄”路