题目大意:给你一个$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. ubuntu14.04 Samba服务无法访问 可能没有权限 指定的网络名不再可用的问题

    按常规配置后,在windows资源管理器中登陆samba服务器,看得到分享目录却无法打开,弹出"无法访问.您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限.指定的 ...

  2. Myeclipse如何更新maven

    选中项目-->右键-->Maven4MyEclipse-->Update Project-->勾选Force update of.....就ok了

  3. 2018.09.24 codeforces 1053C. Putting Boxes Together(线段树)

    传送门 就是让你维护动态的区间带权中位数. 然而昨晚比赛时并没有调出来. 想找到带权中位数的中点可以二分(也可以直接在线段树上找). 也就是二分出第一个断点,使得断点左边的和恰好大于或等于断点右边的和 ...

  4. 2018.07.04 BZOJ 2823: AHOI2012信号塔(最小圆覆盖)

    2823: [AHOI2012]信号塔 Time Limit: 10 Sec Memory Limit: 128 MB Description 在野外训练中,为了确保每位参加集训的成员安全,实时的掌握 ...

  5. 2018.09.13 poj2728Desert King(最优比率生成树)

    传送门 01分数规划经典题. 不过用krsukal会T掉. 这题用prim反而更快(毕竟是完全图) 因此直接二分+最小生成树搞定. 代码: #include<iostream> #incl ...

  6. 2018.09.08 poj1185 炮兵阵地(状压dp)

    传送门 状压dp经典题. 我们把每一行的状态压成01串. 预处理出每一行可能出现的状态,然后转移每个被压缩的状态的1的个数就行了. 注意当前行转移要考虑前两行的状态. 还要注意只有一行的情况. 代码: ...

  7. Django入门与实践-第20章:QuerySets(查询结果集)(完结)

    http://127.0.0.1:8000/boards/1/ #boards/models.py from django.utils.text import Truncator class Topi ...

  8. JedisPoolConfig解说

    版本一 今天发现Jedis 默认的连接方式 jedis=new Jedis(“localhost”,6379),老是发生connection timeout. 后来发现jedis类包还有一种可以设置最 ...

  9. java 解析txt/html文件

    package util.read; import java.io.BufferedReader;import java.io.FileReader; public class ReadFromFil ...

  10. python3.4用循环往mysql5.7中写数据并输出

    #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...