首页 > 其他 > 详细

【题解】洛谷P3166 [CQOI2014] 数三角形(组合+枚举)

时间:2018-09-24 00:11:19      阅读:214      评论:0      收藏:0      [点我收藏+]

洛谷P3166:https://www.luogu.org/problemnew/show/P3166

技术分享图片
#include<iostream>
using namespace std;
#define maxn 1010
long long n,m,ans=1;
long long gcd(long long a,long long b)
{
    if(!b) return a;
    else return gcd(b,a%b);
}
long long C(int n,int m)
{
    long long ret=1;
    for(int i=1;i<=m;i++)
    ret=ret*(n-i+1)/i;
    return ret;
}
int main()
{
    cin>>n>>m;
    n+=1;
    m+=1;
    ans=C(n*m,3);
    if(n>=3) ans-=C(n,3)*m;//减去横竖的点 
    if(m>=3) ans-=C(m,3)*n;
    for(long long i=1;i<n;i++)
        for(long long j=1;j<m;j++)
            ans-=(n-i)*(m-j)*(gcd(i,j)-1)*2;//减去斜的点
    cout<<ans;
}
View Code

 

【题解】洛谷P3166 [CQOI2014] 数三角形(组合+枚举)

原文:https://www.cnblogs.com/BrokenString/p/9693856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!