P2158 [SDOI2008]仪仗队 欧拉函数
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]仪仗队 欧拉函数相关推荐
- BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 ...
- bzoj2190 [SDOI2008]仪仗队(欧拉函数)
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 3203 Solved: 2062 [Submit][Sta ...
- 「BZOJ2190」[SDOI2008] 仪仗队 - 欧拉函数
->点我进原题 [SDOI2008] 仪仗队 时空限制 1000ms / 128MB Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵, ...
- P2158,jzoj1709-仪仗队【欧拉函数,数论】
正题 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P2158 大意 有n∗nn∗nn*n个点,求从(1,1)(1,1)(1 ...
- 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...
- 数论之互质与欧拉函数
文章开始前先给大家安利我学长以前写的数论的blog:aliayc 文章目录 互质 欧拉函数 质因数分解求欧拉函数 筛法求欧拉函数 性质 积性函数 定义 性质 题目 互质 定义 ∀ a , b ∈ N ...
- 欧拉函数(Euler_Function)
一.基本概述 在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉 ...
- 数论讨伐!欧拉函数!
[欧拉函数] 任务开始. 什么是欧拉函数?我们又怎么求呢??? 此次任务的主要怪物:欧拉函数 (1)欧拉函数定义 欧拉函数嘛,当然是我们著名的莱昂哈德·欧拉发明的啦~那么他是怎么定义介个函数滴? 咳咳 ...
- poj2154-color-polyan次二面体+欧拉函数优化
N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...
- hdu 1286( 欧拉函数 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...
最新文章
- Nature子刊封面:澳大真菌研究新突破 有助降低免疫力弱人群受真菌感染的风险...
- 分割候选区域--FastMask: Segment Multi-scale Object Candidates in One Shot
- SAP EWM - 其他主数据 - 运输主数据-1
- 使用Query Object 模式 基于jpql实例
- 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
- HarmonyOS之搭建和配置开发环境的流程
- 服务器无线不能登录界面,Web认证无法跳转到登录页面
- LeetCode—207. 课程表
- 自科基金大比拼!下一轮双一流,谁能上车?谁会下车?
- Oracle 收购Sun之后的演义:IBM 和SAP何去何从
- cmb网站服务器失去响应代码,3.5.2 连接到服务器并响应各种连接事件(2)
- 万字梳理,带你拿下 Java 面试题!
- ios签名软件_如何解决IOS企业签名超高掉签率?当然是选择小菠萝企业签名啦!...
- JavaScript 的 async/await 理解(4)
- 【点滴】向Sql Express数据库文件中注册Asp.NET 2.0用户管理模块
- 《硅谷钢铁侠》与埃隆.马斯克
- 苹果x重启方法_iPhone无法开机怎么办?三种快速维修方法
- 计算机任务计划程序已损坏,小编给你传授win7系统任务计划提示“该任务映像已损坏或已篡的具体办法...
- 查找和排序-——旋转数组的最小数字
- 2022-07-13 第七小组 闫馨月 学习笔记
热门文章
- 七、K8s volume相关操作
- Unity项目中的资源管理
- PHP 7.0 5.6 下安裝 phpLDAPadmin 发生错误的修正方法
- iOS的5种图片缩略技术以及性能探讨
- 网易云基于 Kubernetes 的深度定制化实践
- Java HttpResponse 详解
- 覆盖原有div或者Input的鼠标移上去描述
- Apache Spark源码走读(十)ShuffleMapTask计算结果的保存与读取 WEB UI和Metrics初始化及数据更新过程分析...
- Hibernate @Any 及 @ManyToAny 使用教程
- uvalive3983Robtruck