Mark

https://vjudge.net/contest/409076#problem/G

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll qp(ll a,ll b)
{
    ll res=1;
    while(b)
    {
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }return res;
}

ll cnt1(ll a)//对i^2求和.
{
    return a*(a+1)%mod*(2*a+1)*qp(6,mod-2)%mod;
}

ll cnt2(ll a)//对i求和
{
    return (1+a)*a%mod*qp(2,mod-2)%mod;
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        ll x,y,z,n;
        scanf("%lld",&n);
        //x=((n*(n+1)%mod*((2*n+1)%mod)%mod*qp(6,mod-2)%mod+(1+n)*n*qp(2,mod-2))*(qp(2,mod-2)))%mod;
        x=(cnt1(n)+cnt2(n))/2//正三角形.
        if(n>1)
        {
            y=(n/2)*((n*n%mod+3*n%mod+2+4ll*(cnt1(n/2))%mod-(6ll+4ll*n)%mod*cnt2(n/2)%mod+mod))%mod*qp(2ll,mod-2ll)%mod;//反三角形.
        }
        else    y=0;
        if(n>2) z=(n*qp(3ll,mod-2ll)%mod)*((n*n%mod+3*n%mod+2-(6*n+9)%mod*cnt2(n/3)%mod+9*cnt1(n/3)%mod)%mod+mod)%mod;//斜三角形.
        else z=0;
        printf("%lld\n",(x+y+z)%mod);
    }
    return 0;
}

哲哥有空看看这题...这个代码错了,,我也不知道哪错了..

lpt的小屋 文章被收录于专栏

我想要一份甜甜的爱情

全部评论
QAQ
点赞 回复 分享
发布于 2020-11-22 09:14

相关推荐

快点约我面试吧
投递百度等公司10个岗位
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务