zoukankan      html  css  js  c++  java
  • bzoj 3505

    3505: [Cqoi2014]数三角形

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 698  Solved: 424
    [Submit][Status][Discuss]

    Description

    给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个。下图为4x4的网格上的一个三角形。

    注意三角形的三点不能共线。

    Input

    输入一行,包含两个空格分隔的正整数m和n。

    Output


    输出一个正整数,为所求三角形数量。

    Sample Input


    2 2

    Sample Output

    76


    数据范围
    1<=m,n<=1000

    HINT

    ans=线

    =((n+1)(m+1)3)

    线=++=(n+1)(m+13)+(m+1)(n+13)+

    斜着的怎么算呢?

    算出“”的,“/”用“”乘2即可。

    我们枚举ij表示这条斜着的线的端点分别是ij的矩形的左上角和右下角,这条斜线两点已经确定,这条斜线与格点的交点个数为:gcd(i,j)1 
    (把斜线当做直角三角形的斜边就明白为什么是gcd(i,j)1了)

    而这条斜线还可以平移,一共有(n+1i)(m+1j)条,最后这样的斜线一共有

    (gcd(i,j)1)(n+1i)(m+1j)

    条,就可以算了。

  • 相关阅读:
    flash 语法 入门
    flash 代码 雪花飘落
    test windows live writer
    网站索引
    [转]jquery入门简介
    forcast iframe 及 四款播放器
    flash
    flash 备忘
    浏览器默认HTML的CSS样式属性
    简单多线程拷贝单文件示例
  • 原文地址:https://www.cnblogs.com/water-full/p/4514359.html
Copyright © 2011-2022 走看看