[CQOI2014]数三角形
来源:互联网 发布:淘宝加入放心淘的条件 编辑:程序博客网 时间:2024/05/16 00:50
Description
给定一个n x m的网格,请计算三点都在格点上的三角形共有多少个。下图为4x4的网格上的一个三角形。
注意三角形的三点不能共线。
Input
输入一行,包含两个空格分隔的正整数m和n。
Output
输出一个正整数,为所求三角形数量。
Sample Input
Input I:1 1Input II:2 2
Sample Output
Output I:4Output II:76
HINT
对于30%数据
1≤m, n≤10
对于100%数据
1≤m, n≤1000
#include<stdio.h>
int
gcd[1010][1010],n,m;
long
long
t,ans;
int
getgcd(
int
a,
int
b)
{
if
(gcd[a][b])
return
gcd[a][b];
if
(!a)
return
gcd[a][b]=b;
if
(!b)
return
gcd[a][b]=a;
return
gcd[a][b]=getgcd(b,a%b);
}
int
main()
{
scanf
(
"%d%d"
,&n,&m);
for
(
int
i=1;i<=m;i++)
gcd[0][i]=i;
for
(
int
i=1;i<=n;i++)
gcd[i][0]=i;
for
(
int
i=1;i<=n;i++)
for
(
int
j=1;j<=m;j++)
getgcd(i,j);
t=(n+1)*(m+1);
ans=t*(t-1)*(t-2)/6;
for
(
int
i=0;i<=n;i++)
for
(
int
j=0;j<=m;j++)
if
(i||j)
{
if
(!i||!j)
ans-=(
long
long
)(gcd[i][j]-1)*(n-i+1)*(m-j+1);
else
ans-=(
long
long
)2*(gcd[i][j]-1)*(n-i+1)*(m-j+1);
}
printf
(
"%lld"
,ans);
}
AC 顶一个
阅读全文
3 0
- [Bzoj3505][Cqoi2014]数三角形
- 3505: [Cqoi2014]数三角形
- bzoj3505 [Cqoi2014]数三角形
- bzoj3505: [Cqoi2014]数三角形
- bzoj3505 [Cqoi2014]数三角形
- 【CQOI2014】【BZOJ3505】数三角形
- bzoj3505【CQOI2014】数三角形
- 3505: [Cqoi2014]数三角形
- bzoj3505: [Cqoi2014]数三角形
- 【jzoj3598】【CQOI2014】【数三角形 】
- [CQOI2014】数三角形
- 【CQOI2014】数三角形
- 【JZOJ3598】【CQOI2014】数三角形
- 【JZOJ3598】【CQOI2014】数三角形
- 【CQOI2014】数三角形
- 【CQOI2014】数三角形
- 【bzoj3505】[Cqoi2014]数三角形
- bzoj3505 [Cqoi2014]数三角形
- DSP芯片的基本结构
- git 提交本地文件到coding.net 简单操作
- (一)HBase学习之路
- 闭包中的this
- Drying
- [CQOI2014]数三角形
- 神经网络和深度学习(一)——初识神经网络
- 图像算法工程师应具备的技能
- hpuQAQ & 火星情报局
- 局部变量, 成员变量, 类变量的区别
- 网络爬虫之cheerio
- JavaScript中的严格模式
- 24点游戏算法
- POJ 2349 ——Arctic Network(kruskal)