P2158 [SDOI2008]仪仗队

题目描述
作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。


错误日志: 没有特判 \(N = 1\) 的情况


Solution

除开 \((0,1) (1,0) (0,0)\) 这三个点不谈, 可以发现一个点可以被看到, 当且仅当 \(gcd(x, y) = 1\)
所以把目光放到互质
类似埃式筛法, 我们可以在 \(O(n\log n)\) 的时间内求出 \(1-n\) 的欧拉函数

void euler(int n){for(int i = 2;i <= n;i++)phi[i] = i;for(int i = 2;i <= n;i++){if(phi[i] == i){for(int j = i;j <= n;j += i){phi[j] = phi[j] / i * (i - 1);}}}}

发现这题左上部分与右下部分是对称的, 因为 \(y = x\) 这条线上的点被 \((1,1)\) 盖住了, 所以欧拉函数实际上只累积到 \(n - 1\)
我们还要加上最开始除开的三个点

即所求为: \[2 * \sum_{i = 2}^{N - 1}{\phi(i)} + 3\]

注意特判 \(N = 1\) 的情况

Code

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<climits>
typedef long long LL;
using namespace std;
int RD(){int out = 0,flag = 1;char c = getchar();while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();}while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}return flag * out;}
const int maxn = 40019;
int num, phi[maxn];
void euler(int n){for(int i = 2;i <= n;i++)phi[i] = i;for(int i = 2;i <= n;i++){if(phi[i] == i){for(int j = i;j <= n;j += i){phi[j] = phi[j] / i * (i - 1);}}}}
int main(){num = RD();if(num == 1){puts("0");return 0;}euler(num - 1);int ans = 0;for(int i = 2;i <= num - 1;i++)ans += phi[i];printf("%d\n", ans * 2 + 3);return 0;}

不知道有啥卵用的欧拉定理

若 \[a \perp n\] 则
\[a^{\phi(n)\equiv}1(mod\ n)\]

转载于:https://www.cnblogs.com/Tony-Double-Sky/p/9510732.html

P2158 [SDOI2008]仪仗队 欧拉函数相关推荐

  1. BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )

    假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 ...

  2. bzoj2190 [SDOI2008]仪仗队(欧拉函数)

    2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 3203  Solved: 2062 [Submit][Sta ...

  3. 「BZOJ2190」[SDOI2008] 仪仗队 - 欧拉函数

    ->点我进原题 [SDOI2008] 仪仗队 时空限制 1000ms / 128MB Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵, ...

  4. P2158,jzoj1709-仪仗队【欧拉函数,数论】

    正题 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P2158 大意 有n∗nn∗nn*n个点,求从(1,1)(1,1)(1 ...

  5. 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数

    题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...

  6. 数论之互质与欧拉函数

    文章开始前先给大家安利我学长以前写的数论的blog:aliayc 文章目录 互质 欧拉函数 质因数分解求欧拉函数 筛法求欧拉函数 性质 积性函数 定义 性质 题目 互质 定义 ∀ a , b ∈ N ...

  7. 欧拉函数(Euler_Function)

    一.基本概述 在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉 ...

  8. 数论讨伐!欧拉函数!

    [欧拉函数] 任务开始. 什么是欧拉函数?我们又怎么求呢??? 此次任务的主要怪物:欧拉函数 (1)欧拉函数定义 欧拉函数嘛,当然是我们著名的莱昂哈德·欧拉发明的啦~那么他是怎么定义介个函数滴? 咳咳 ...

  9. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  10. hdu 1286( 欧拉函数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...

最新文章

  1. Nature子刊封面:澳大真菌研究新突破 有助降低免疫力弱人群受真菌感染的风险...
  2. 分割候选区域--FastMask: Segment Multi-scale Object Candidates in One Shot
  3. SAP EWM - 其他主数据 - 运输主数据-1
  4. 使用Query Object 模式 基于jpql实例
  5. 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
  6. HarmonyOS之搭建和配置开发环境的流程
  7. 服务器无线不能登录界面,Web认证无法跳转到登录页面
  8. LeetCode—207. 课程表
  9. 自科基金大比拼!下一轮双一流,谁能上车?谁会下车?
  10. Oracle 收购Sun之后的演义:IBM 和SAP何去何从
  11. cmb网站服务器失去响应代码,3.5.2 连接到服务器并响应各种连接事件(2)
  12. 万字梳理,带你拿下 Java 面试题!
  13. ios签名软件_如何解决IOS企业签名超高掉签率?当然是选择小菠萝企业签名啦!...
  14. JavaScript 的 async/await 理解(4)
  15. 【点滴】向Sql Express数据库文件中注册Asp.NET 2.0用户管理模块
  16. 《硅谷钢铁侠》与埃隆.马斯克
  17. 苹果x重启方法_iPhone无法开机怎么办?三种快速维修方法
  18. 计算机任务计划程序已损坏,小编给你传授win7系统任务计划提示“该任务映像已损坏或已篡的具体办法...
  19. 查找和排序-——旋转数组的最小数字
  20. 2022-07-13 第七小组 闫馨月 学习笔记

热门文章

  1. 七、K8s volume相关操作
  2. Unity项目中的资源管理
  3. PHP 7.0 5.6 下安裝 phpLDAPadmin 发生错误的修正方法
  4. iOS的5种图片缩略技术以及性能探讨
  5. 网易云基于 Kubernetes 的深度定制化实践
  6. Java HttpResponse 详解
  7. 覆盖原有div或者Input的鼠标移上去描述
  8. Apache Spark源码走读(十)ShuffleMapTask计算结果的保存与读取 WEB UI和Metrics初始化及数据更新过程分析...
  9. Hibernate @Any 及 @ManyToAny 使用教程
  10. uvalive3983Robtruck