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)

条,就可以算了。

 

posted @ 2015-05-19 13:32  waterfull  阅读(102)  评论(0编辑  收藏  举报