题目大意:给你一个$n\times m$的网格,你要在这个网格上画三角形。

三角形的顶点只能在网格的整点上,且至少有一条边平行于$x$或$y$轴,且三角形面积为整数。问你能画多少个不同的三角形。

两个三角形被判定为不同,当且仅当两个三角形所包含的点集不相同。

多组询问,$n,m≤10^9$。

这题是裸的小学奥数题。。。。

我们先不管那个面积限制,先来看下有多少个三角形满足前两个条件。

我们令三角形的一边平行于$x$轴,我们考虑枚举底边,显然底边有$ \dfrac {m(m+1)(n+1)} {2}$种不同的取法(不同的位置,长度)

然后,我们枚举三角形的顶点,显然不能跟底边位于同一个$x$轴上,那么有$n(m+1)$种取法。

平行与$y$轴的情况同理。

但是这么算会将直角三角形的数量算重,我们考虑减去这些三角形

我们考虑枚举三角形的直角顶点位置以及两边边长,这个相当于是在两条长度分别为$n$和$m$的线段上截取两段出来,方案数显然为$\dfrac{m(m+1)n(n+1)}{4}$种。

然后,考虑到枚举出的一组线段,共有$4$种构造的方法,故方案数要$\times 4$。

我们成功求出了三角形的数量。

考虑这些三角形中不合法的数量,不合法的三角形,显然底边和高的长度均为奇数。

我们考虑将网格格点进行黑白染色,记 $n1=\lceil \dfrac{n}{2} \rceil $,$n2=\lfloor \dfrac{n}{2} \rfloor $。$m1,m2$同理。

那么显然,一个不合法的,且底边与$x$轴平行的三角形,底边两点的横坐标必然一个为奇,一个为偶数的,方案数为$n1\times n2$。

下面考虑枚举底边和顶点的纵坐标,显然底边和顶点所在的纵坐标必须一个为奇,一个为偶,方案数为$2m1\times m2$,顶点横坐标显然有n中选法。

故与$x$轴平行的不合法三角形总共有$2n1\times n2\times m1\times m2\times n$个。

底边与$y$轴平行的三角形同理。

考虑不合法的直角三角形,数量为$4n1\times n2\times m1\times m2$。(枚举两条边边长,直角朝向)。

然后就没有了

【GDKOI2017】 两个胖子萌萌哒 小学奥数题的更多相关文章

  1. python基础===一道小学奥数题的解法

    今早在博客园和大家分享了一道昨晚微博中看到的小学奥数题,后来有朋友给出了答案.然后我尝试用python解答它. 原题是这样的: 数学题:好事好 + 要做好 = 要做好事,求 “好.事.做.要”的值分别 ...

  2. luogu 1258 小车问题 小学奥数(?)

    题目链接 题意 甲.乙两人同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲.乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能使两人尽快同时到 ...

  3. 一个hin秀的小学三年级奥数题 [hin秀]

    ~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~ 一个hin秀的小学三年级奥数题    [hin秀] 题目: 给出一个无限大的棋盘  n×n  (n>0 , 是 ...

  4. [CSP-S模拟测试]:方程的解(小学奥数)

    题目描述 给出一个二元一次方程$ax+by=c$,其中$x$.$y$是未知数,求它的正整数解的数量. 输入格式 第一行一个整数$T$,表示有$T$组数据.接下来$T$行,每行$3$个整数$a$.$b$ ...

  5. 【xsy1116】数学题 奥数题

    真实奥数题 题目大意:给你正整数k$,r$.问你存在多少对$(x,y)$,满足$x<y$且$x^2+y^2=kz^2$,并将所有符合条件的数对输出. 数据范围:$r≤1e9$,$k={1,2,3 ...

  6. NOI上看到的几个小学奥数

    :余数相同问题 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同 ...

  7. NOIp 数学 (小学奥数)

    Basic knowledge \[ C_n^m=\frac{n!}{m!(n - m)!} \] 快速幂 // Pure Quickpow inline int qpow(int n, int m, ...

  8. 鬼知道NOI会不会成为下一个奥数

    认真写作文不可能的,这辈子不可能认真写作文的. (月考,期末考,高考即将到达战场,真香警告) 以下应该成为原稿!!! 真.喜欢写感悟,但我感觉我可能把它写的有点商业化,商业化的文章不可能放的,所以我尽 ...

  9. 「浙江理工大学ACM入队200题系列」问题 J: 零基础学C/C++83——宁宁的奥数路

    本题是浙江理工大学ACM入队200题第八套中的J题 我们先来看一下这题的题面. 题面 题目描述 宁宁参加奥数班,他遇到的第一个问题是这样的:口口口+口口口=口口口,宁宁需要将1~9 九个数分别填进对应 ...

随机推荐

  1. yii2 beforeAction 重定向问题

    不跳转代码:return $this->redirect('http://www.yiichina.com/'); 跳转代码:return $this->redirect('http:// ...

  2. aused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method fai

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleDaoImpl' ...

  3. Windows10和CentOS7双系统安装的一些小技巧

    我个人是先安装好了win10系统,且win10是单独在一个120g的盘里:而centOS7则是安装在另一个500g的磁盘的其中的380g里: 这里要着重注意的是,500g里分成380g的盘不要在win ...

  4. nvarchar,varchar 区别

        char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nva ...

  5. DIV+CSS实战(五)

    一.说明 前面实现了关键词订阅模块,现在实现站点订阅模块,主要实现的是站点添加界面.站点添加界面里面实现一个提示框不在提示的功能(保存到cookie中),还有就是实现一个站点的选择框,包括输入文字自动 ...

  6. BSD Socket 通信

    Berkeley sockets is an application programming interface (API) for Internet sockets and Unix domain ...

  7. post异步请求

    //创建url NSURL *url = [[NSURL alloc] initWithString:@"http://api.hudong.com/iphonexml.do"]; ...

  8. php一些方法说明

    var_dump():判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值,通过缩进显 ...

  9. string 和String的区别

    string 是 System.String 的别名,习惯上,我们把字符串当作对象时(有值的对象实体),我们用string.而我们把它当类时(需要字符串类中定义的方法),我们用String,比如: s ...

  10. python3字符集之间--encode与decode之间的转码详解

    encode是编码,里面传入的参数是需要转成的字符集,decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码 字符集之间的爱恨纠缠 # -*- coding: ...