题目传送门

【题目大意】

给定一个n×n的点方阵,求站在左下角的点能看到的点数

注意同一条直线上只能看到一个点

【思路分析】

因为是一个方阵,所以可以对称地算,那么对于半个方阵,这里假设是左上的半个方阵,能看到的点的个数要满足这样的条件

1.x<y

因为是左上的半个方阵,并且x=y的一直线上的点要额外计算

2.gcd(x,y)即x与y互质

这是为了保证一直线上只能看到一个点

容易发现,在满足条件的情况下,这样的x个数恰好等于φ(y)

还需要注意的一点是,最左边一列,最下面一行,还有x=y这条直线上一共可以看到三个点,所以要额外计算

于是最后的答案Ans=3+2*$\sum_{i=2}^{n}\varphi[i]$

【代码实现】

 #include<bits/stdc++.h>
#define go(i,a,b) for(register int i=a;i<=b;i++)
using namespace std;
const int N=;
int v[N],prime[N],phi[N];
int n;
int fr(){
int w=,q=;
char ch=getchar();
while(ch<''||ch>''){
if(ch=='-') q=-;
ch=getchar();
}
while(ch>=''&&ch<='')
w=(w<<)+(w<<)+ch-'',ch=getchar();
return w*q;
}
void work(){
memset(v,,sizeof(v));
int num=;
go(i,,n){
if(v[i]==){//如果i没有被标记过,那就是质数
v[i]=i,prime[++num]=i;
phi[i]=i-;//性质2
}
go(j,,num){
if(prime[j]>v[i]||prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
phi[i*prime[j]]=phi[i]*(i%prime[j]?prime[j]-:prime[j]);
//性质8和性质9的结合
}
}
}
int ans=;
int main(){
n=fr();n--;
//这里要注意一下题目的bug,你可以认为输入的是点数但实际上是看格子
if(n==) {printf("0\n");return ;}
work();
go(i,,n)
ans+=phi[i];
ans*=;ans+=;
printf("%d\n",ans);
return ;
}

AC代码戳这里

Luogu P2158 仪仗队 题解报告的更多相关文章

  1. 欧拉函数 || [SDOI2008]仪仗队 || BZOJ 2190 || Luogu P2158

    题面:P2158 [SDOI2008]仪仗队 题解: 显然除了(1,1),(0,1),(1,0)三个点外,对于其他点(x,y)只要满足gcd(x,y)==1就可以被看到 然后这些点是关于y=x对称的, ...

  2. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  3. cojs 强连通图计数1-2 题解报告

    OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一 ...

  4. cojs 二分图计数问题1-3 题解报告

    OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...

  5. 题解报告:hdu 1398 Square Coins(母函数或dp)

    Problem Description People in Silverland use square coins. Not only they have square shapes but also ...

  6. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  7. 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)

    Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...

  8. CF Educational Round 78 (Div2)题解报告A~E

    CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students​ 依题意模拟即可 #include<bits/stdc++.h> us ...

  9. CF1169(div2)题解报告

    CF1169(div2)题解报告 A 不管 B 首先可以证明,如果存在解 其中必定有一个数的出现次数大于等于\(\frac{m}{2}\) 暴力枚举所有出现次数大于等于$\frac{m}{2} $的数 ...

随机推荐

  1. 网络流 之 P2766 最长不下降子序列问题

    题目描述 «问题描述: 给定正整数序列x1,...,xn . (1)计算其最长不下降子序列的长度s. (2)计算从给定的序列中最多可取出多少个长度为s的不下降子序列. (3)如果允许在取出的序列中多次 ...

  2. centos6.5搭建hadoop完整教程

    https://blog.csdn.net/hanzl1/article/details/79040380 博客地址http://blog.csdn.net/pucao_cug/article/det ...

  3. ABP之多租户

    “软件多租户”指的是一种软件架构,一个软件实例在一个服务器上运行,但为多个租户服务.租户们对软件实例有通用的访问入口,但是每个租户都有特定的权限. 在多租户体系架构中,用程序旨在为每个租户提供一个专用 ...

  4. 项目笔记-vue

    记录新建vue项目之后的种种. 2019年3月12日,从git上下载了一个vue后台模板的项目,git地址:https://github.com/lin-xin/vue-manage-system ( ...

  5. MYSQL 双主配置

    MYSQL1. 版本号:5.7.243. 部署方式:双主部署,两台机器即是主又是备 ,双向拷贝,可以同时写入.4. 安装部署路径: a) /home/softb) 配置路径 /etc/my.cnfc) ...

  6. laravel 开启定时任务需要操作

    1.在xshell 中 crontab -e //编辑任务crontab -l //查看执行中的任务列表 2.在打开的任务中: /home/wwwroot/default 换为自己项目的根路径 vag ...

  7. Vue.js 2.x笔记:路由Vue Router(6)

    1. Vue Router简介与安装 1.1 Vue Router简介 Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,构建单页面应用. Vue Rout ...

  8. 【HTML】行内-块级-行块级

    行内元素 相邻元素可以在一行显示直到一行排不下才进行换行. 不可设置宽高,宽度随内容变化. padding和margin的设置中,水平方向(padding-left...)有效果,垂直方向无效果. 块 ...

  9. jQuery在页面加载的时候自动调用某个函数的方法

    第一种:$(document).ready(function(){ func(xxx)//执行函数}); 第二种:$(function(){ func(xxx)//执行函数}); 第三种:jQuery ...

  10. MT【330】u,v,w法

    已知$a^2+b^2+c^2=1$求$abc(a+b+c)$的最小值.(2018辽宁预赛解答压轴题) 不妨设$a+b+c=3u,ab+bc+ca=3v^2,abc=w^3$,令$u^2=tv^2$要求 ...