【BZOJ2190】仪仗队(数论)

题面

粘链接,题目中有图片

题解

对于题意,可以考虑

如果有\((i,j)\)能够被看见

那么,\((ki,kj)\)就一定不能看见

所以,如果一个点能够被看见,则有\(gcd(i,j)=1\)

先强制\(i>j\)

所以,对于每一个\(i\),能够有的贡献是\(φ(i)\)

所以,直接求和即可,还有\(3\)个点直接暴力加上即可

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
int N;
int phi(int x)
{
int ans=x;
for(int i=2,l=sqrt(x);i<=l;++i)
if(x%i==0)
{
ans=1ll*ans*(i-1)/i;
while(x%i==0)x/=i;
}
if(x>1)ans=1ll*ans*(x-1)/x;
return ans;
}
int main()
{
cin>>N;
int tot=0;
for(int i=2;i<N;++i)
tot+=phi(i);
cout<<2*tot+3<<endl;
return 0;
}

【BZOJ2190】仪仗队(数论)的更多相关文章

  1. BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)

    今天zky学长讲数论,上午水,舒爽的不行..后来下午直接while(true){懵逼:}死循全程懵逼....(可怕)Thinking Bear. 2190: [SDOI2008]仪仗队 Time Li ...

  2. 【bzoj2190】: [SDOI2008]仪仗队 数论-欧拉函数

    [bzoj2190]: [SDOI2008]仪仗队 在第i行当且仅当gcd(i,j)=1 可以被看到 欧拉函数求和 没了 /* http://www.cnblogs.com/karl07/ */ #i ...

  3. 【bzoj2190】[SDOI2008]仪仗队 数论 欧拉函数 筛法

    http://www.lydsy.com/JudgeOnline/problem.php?id=2190   裸欧拉函数,先不计算对角线(a,a)的一列,然后算出1到n-1的所有欧拉函数相加*2,再加 ...

  4. bzoj2190 仪仗队

    题目传送门 思路: 哪些点能被人看到,其实就是哪些点不会被其他点挡住,只要顶点的坐标互质就可以了,互质用欧拉函数算.特殊考虑一下n=1和0的情况. 欧拉函数,Φ(x)=x(1-1/p1)(1-1/p2 ...

  5. Bzoj-2190 仪仗队 欧拉函数

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 简单的欧拉函数题,实际上就是求gcd(x,y)=1, 0<=x,y<=n ...

  6. 【SDOI2008】解题汇总

    好叭我真的是闲的了... /---------------------------------------------/ BZOJ-2037 [SDOI2008]Sue的小球 DP+相关费用提前计算 ...

  7. 【数论】【欧拉函数】bzoj2190 [SDOI2008]仪仗队

    由图可知,一个人无法被看到时,当且仅当有 人与原点 的斜率与他相同,且在他之前. ∴一个人可以被看到,设其斜率为y/x,当且仅当y/x不可再约分,即gcd(x,y)=1. 考虑将图按对角线划分开,两部 ...

  8. 【BZOJ2190】【SDOI2008】仪仗队

    Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是 ...

  9. 【bzoj2190】【仪仗队】欧拉函数+线性筛(浅尝ACM-J)

    向大(hei)佬(e)势力学(di)习(tou) Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪 ...

随机推荐

  1. DataGrid 拖动 附加属性类

    项目需要实现一个DataGrid拖动排序,于是参考网上一些资源然后,修改了下实现了一个附加属性类,如下 使用方法 <DataGrid x:Name="shareGrid" t ...

  2. MySQL中四种常用存储引擎的介绍

    MySQL常用的四种引擎的介绍 (1):MyISAM存储引擎: 不支持事务.也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表 ...

  3. NFS工作原理

    很多同学都知道NFS的使用场景,也知道如何配置和使用,但对NFS的工作原理了解的很少. NFS是C/S模式,首先要有一台服务端跑NFS服务,然后各个客户端直接挂载共享目录使用.NFS服务本身不会监听端 ...

  4. 说说VNode节点(Vue.js实现)

    写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...

  5. Python之数据类型转换

    平时我们在处理数据的时候,有些数据类型不是我们想要的,怎么办? 一.数据类型转换:要转换的类型(数据) 要把num01转换为整数:int(num01) 要把num01转换为浮点数:float(num0 ...

  6. 加快compser install 和update的方法

    加快compser install 和update的方法: 可以进入composer国内镜像里面进行参考 如下是修改composer.json文件来实现(在json配置的最后加上如下代码) " ...

  7. python requests库学习笔记(下)

    1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exc ...

  8. Java经典编程题50道之四十三

    一个偶数总能表示为两个素数之和. public class Example43 {    public static void main(String[] args) {        f();   ...

  9. iterator的romove方法的注意事项

    package cn.lonecloud.Iterator; import java.util.ArrayList; import java.util.Iterator; public class m ...

  10. 合唱团 (线性dp)

    题意:有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积 ...