• BZOJ 3505 数三角形


    枚举i,j相当于枚举两点且确定里面还有整点。好巧啊。。。。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 1050
    using namespace std;
    long long n,m,c[maxn*maxn][4];
    long long gcd(long long a,long long b)
    {
        if (b==0) return a;
        return gcd(b,a%b);
    }
    void get_table()
    {
        c[0][0]=1;
        for (long long i=1;i<=(n+1)*(m+1);i++)
        {
            c[i][0]=1;
            for (long long j=1;j<=3;j++)
                c[i][j]=c[i-1][j]+c[i-1][j-1];
        }
    }
    long long get_ans()
    {
        long long ret=0;
        for (long long i=1;i<=n;i++)
            for (long long j=1;j<=m;j++)
            {
                long long d=gcd(i,j);
                if (d!=1) ret+=(d-1)*(n-i+1)*(m-j+1);
            }
        return 2*ret;
    }
    int main()
    {
        scanf("%lld%lld",&n,&m);
        get_table();
        printf("%lld
    ",c[(n+1)*(m+1)][3]-(m+1)*c[n+1][3]-(n+1)*c[m+1][3]-get_ans());
        return 0;
    }
  • 相关阅读:
    字段操作
    数据操作
    表操作
    数据库操作
    如何连接mysql
    mysql新增用户和修改用户密码
    表和库和服务器的关系
    MySql的复合类型
    yum软件源
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/5972686.html
Copyright © 2020-2023  润新知