SDOI 2008 仪仗队
洛谷 P2158 [SDOI2008]仪仗队 洛谷传送门 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。 输入格式 共一个数N 输出格式 共一个数,即C君应看到的学生人数。 输入输出样例 输入 #1 复制 输出 #1 复制 说明/提示 【数据规模和约定】 对于 100% 的数据,1 ≤ N ≤ 40000 题解: 一道欧拉函数的经典题。原题是POJ 3090 Visible Lattice Points 来看图说话: 观察这个图,我们首先发现,这个东西是关于直线 \(y=x\) 对称的。接下来我们观察遮挡,根据几何学中的相似知识(三角形相似),我们发现,如果有两个点的横纵坐标构成的两个三角形相似的话,那么那个较大的三角形(那个点)就会被挡住。 什么意思呢?我们发现,一个点可见的条件为:当且仅当 \((x,y)\in N,x\not=y\) 并且 \(gcd(x,y)=1\) ,即横纵坐标互质。 因为这个图像的大小已知,并且这个图像是关于 \(y=x\) 对称的,那么我们只需要考虑半边的图像有多少点,给它乘二加三(因为有 \((1,0),(1,1),(0,1)\) )即可。