其他分享
首页 > 其他分享> > 2020 蓝桥杯大学 B 组省赛模拟赛 方阵

2020 蓝桥杯大学 B 组省赛模拟赛 方阵

作者:互联网

题目链接

题目链接

题意

小朋友们排成了一个n*n的方阵,方阵中,小朋友 AA 和小朋友 BB 互相可以看见,当且仅当二人之间的连线不经过别的小朋友,且他们之间的距离不超过 kk (因为太远就看不见了)。求有多少对小朋友相互看见

思路

参考代码

#include<bits/stdc++.h>
using namespace std;
int mod=1e9+7;
int main()
{
    int n=1000,k=500;
    long long ans=0;
    for(int i=1;i<n;i++)
    {
        for(int j=1;j<n;j++)
        {
            if(__gcd(i,j)==1&&i*i+j*j-k*k<=0)
            {
                ans+=2*(n-i)*(n-j);
                ans=ans%mod;
            }
        }
    }
    ans=(ans+2*n*(n-1))%mod;
    cout<<ans<<endl;
}

标签:x1,int,蓝桥,x2,2020,y1,小朋友,y2,组省赛
来源: https://blog.csdn.net/o11oo11o/article/details/116376930