http://www.lydsy.com/JudgeOnline/problem.php?id=3505 (题目链接)

题意

  给定一个n*m的网格,请计算三点都在格点上的三角形共有多少个。

Solution

$${ans=平面中选三个点的方案数-三点共线的方案数}$$

$${ans=C_{(n+1)*(m+1)}^{3}-(n+1)*C_{m+1}^{3}-(m+1)*C_{n+1}^{3}-斜的三点共线的方案数}$$

  斜的三点共线方案数不会求。。左转题解:http://blog.csdn.net/zhb1997/article/details/38474795

细节

  LL

代码

// bzoj3505
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define LL long long
#define inf 10000000
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;int n,m;
LL c[2000010][4];int gcd(int a,int b) {return b==0 ? a : gcd(b,a%b);
}
int main() {scanf("%d%d",&n,&m);for (int i=0;i<=(n+1)*(m+1);i++) c[i][0]=1;for (int i=1;i<=(n+1)*(m+1);i++)for (int j=1;j<=min(3,i);j++) c[i][j]=c[i-1][j-1]+c[i-1][j];LL ans=c[(n+1)*(m+1)][3]-(n+1)*c[m+1][3]-(m+1)*c[n+1][3];for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) {LL x=gcd(i,j)+1;if (x>2) ans-=(x-2)*2*(n-i+1)*(m-j+1);}printf("%lld",ans);return 0;
}

  

转载于:https://www.cnblogs.com/MashiroSky/p/6217010.html

【bzoj3505】 Cqoi2014—数三角形相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. P3166 [CQOI2014]数三角形

    文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...

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

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

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

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

最新文章

  1. 今天看到两个题 写出来思考一下
  2. [WebService] xml WebService学习1
  3. 一起谈.NET技术,初识Silverlight 4及其架构
  4. 学习ui设计_如果您想学习UI设计,该怎么办
  5. 刚转Java?那准备转回.NET5吧!
  6. leetcode - 375. 猜数字大小 II
  7. 去找工作还要先交押金我认为不太靠谱
  8. 『Broken Robot 后效性dp 高斯消元』
  9. 网站开发流程以及HTML5简介(十)
  10. 相机参数标定+透视变换
  11. docker 内安装字体
  12. 天津全国计算机等级考试考点,2018年下半年全国计算机等级考试报考简章及天津考点安排...
  13. 理解SaaS、PaaS、LaaS以及之间的区别
  14. typora配置好smms后还是typora上传图片失败:image load failed。
  15. 多人连线的枪战游戏-补充
  16. 银行卡号每输四位加空格,及银行卡的识别(此银行卡号是那个银行)
  17. live2d_碧蓝航线:老婆们在外服都长啥样?她惊艳四座,Live2D独此一家
  18. 华为账号登录的手游如何在雷电(MuMu等)模拟器上登录游戏(以三国杀为例)
  19. JS 遍历对象 jQuery遍历对象
  20. 什么是python 包_什么是python包

热门文章

  1. 动态规划—1.2 买卖股票的最佳时机
  2. k-近邻算法的优缺点及拓展思考
  3. unity 预编译指令
  4. 互联网巨头的2B市场变革
  5. mantis apache mysql_apache+php+mysql搭建mantis
  6. oracle 进程cpu 高,oracle进程CPU占用太高
  7. Python基础编程题
  8. 【2012求职经历】应届生求职经历
  9. java中mysql的优化,Java培训实战教程之mysql优化
  10. JavaEE面试注意事项