/**
题目:A - Bi-shoe and Phi-shoe
链接:https://vjudge.net/contest/154246#problem/A
题意:每一个数都有一个得分,它的得分就是,假定这个数为n,那么<n且与n互质的数的个数就是n的得分;
注意这里<n说明不是完全求欧拉函数,当n=1的时候值为0;其他和欧拉函数求法一样。
现在给定n个数xi,对每一个数xi找一个最小的满足条件的数yi,使得yi的得分>=xi这个数。
求n个数xi对应找出来的yi的和。
思路:
第一种做法
递推求出欧拉函数数组,然后特殊处理1的值设定为0;
然后对要求的n个数排序,从小到大找一个满足条件的yi,之后的数肯定在大于等于yi的数中找。
不断将yi后移就行了。仔细想想就明白了。
第二种做法
不需要排序,预处理递推数组后,因为素数r的欧拉函数之为r-1;而两个素数之间的距离不超过log(r);
那么对每一个数xi可以从自身开始向上递增最多log(xi)就可以找到>=xi的欧拉函数;
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxn = ;
///获得单个数的欧拉函数
/*
ll getEuler(ll x)
{
ll res = x;
for(int i = 2; i*i<=x; i++){
if(x%i==0){
res = res/i*(i-1);
while(x%i==0) x/=i;
}
}
if(x>1){
res = res/x*(x-1);
}
return res;
}*/
int a[];
int n, cas=;
ll euler[maxn];
///递推求一段欧拉函数,非最简版
void Eulers(ll x)
{
int mas = ;
for(int i = ; i <= x; i++) euler[i] = i;
for(int i = ; i <= x; i++) {
if(euler[i]==i){//判断素数
for(int j = i; j <= x; j+=i){
euler[j]=euler[j]/i*(i-);
}
}
}
///由于本题目要求<n的欧拉函数,不可以等于n;所以当n为1的时候,满足条件的个数为0;
///****************************实际上1的欧拉函数值为1;所以这里是一个针对本题的特例才要改为0;
euler[] = ;
}
void solve1()
{
sort(a,a+n);
int p = ;
ll ans = ;
for(int i = ; i<n; i++){
while(euler[p]<a[i]){
p++;
}
ans += p;
}
printf("Case %d: %lld Xukha\n",cas++,ans);
}
void solve2()
{
ll ans = ;
for(int i = ; i<n; i++){
for(int j = a[i]; ; j++){///两个素数之间距离最多log(n);
if(euler[j]>=a[i]){
ans += j; break;
}
}
}
printf("Case %d: %lld Xukha\n",cas++,ans);
}
int main()
{
int T;
Eulers(maxn);
cin>>T;
while(T--){
scanf("%d",&n);
for(int i = ; i<n; i++) scanf("%d",&a[i]);
//solve1();
solve2();
//printf("euler(%lld) = %lld\n",x,getEuler(x));
//printf("MAX(euler(%lld)) = %lld\n",x,Eulers(x));
}
return ;
}

A - Bi-shoe and Phi-shoe 欧拉函数的更多相关文章

  1. FZU 1759 欧拉函数 降幂公式

    Description   Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000 ...

  2. poj3696 快速幂的优化+欧拉函数+gcd的优化+互质

    这题满满的黑科技orz 题意:给出L,要求求出最小的全部由8组成的数(eg: 8,88,888,8888,88888,.......),且这个数是L的倍数 sol:全部由8组成的数可以这样表示:((1 ...

  3. HDU 4483 Lattice triangle(欧拉函数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4483 题意:给出一个(n+1)*(n+1)的格子.在这个格子中存在多少个三角形? 思路:反着想,所有情 ...

  4. UVa 11426 (欧拉函数 GCD之和) GCD - Extreme (II)

    题意: 求sum{gcd(i, j) | 1 ≤ i < j ≤ n} 分析: 有这样一个很有用的结论:gcd(x, n) = i的充要条件是gcd(x/i, n/i) = 1,因此满足条件的x ...

  5. 【欧拉函数】【HDU1286】 找新朋友

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. HDU 1695 GCD(欧拉函数+容斥原理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:x位于区间[a, b],y位于区间[c, d],求满足GCD(x, y) = k的(x, ...

  7. SPOJ 5152 Brute-force Algorithm EXTREME && HDU 3221 Brute-force Algorithm 快速幂,快速求斐波那契数列,欧拉函数,同余 难度:1

    5152. Brute-force Algorithm EXTREME Problem code: BFALG Please click here to download a PDF version ...

  8. uva 11426 GCD - Extreme (II) (欧拉函数打表)

    题意:给一个N,和公式 求G(N). 分析:设F(N)= gcd(1,N)+gcd(2,N)+...gcd(N-1,N).则 G(N ) = G(N-1) + F(N). 设满足gcd(x,N) 值为 ...

  9. [NOI2010][bzoj2005] 能量采集 [欧拉函数+分块前缀和优化]

    题面: 传送门 思路: 稍微转化一下,可以发现,每个植物到原点连线上植物的数量,等于gcd(x,y)-1,其中xy是植物的横纵坐标 那么我们实际上就是要求2*sigma(gcd(x,y))-n*m了 ...

  10. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

    1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][W ...

随机推荐

  1. ListView控件(上)数据适配器:ListView绑定监听是SetOnItemClickListener

    (一) 1.效果图: 2.MainActivity.java package com.example.app5; import android.support.v7.app.AppCompatActi ...

  2. 杂谈PID控制算法——第一篇:三个量

    电赛训练了大半个暑假,人渐渐开始进入到了疲倦期.既然这样那就好好休息下自己也好吧. 休息也不能光休息,乘机把平常写过的一些东西好好整理也好. 从第一次训练开始我们就接触到了一个新的名词——PID控制理 ...

  3. perspective 的笔记

    以前看到别人做的banner图,3d变化,很羡慕啊,一直不知道怎么做,直到看到了这个样式perspective,然后就知道怎么实现了 一个简单的例子,扫起 demo下在地址    http://fil ...

  4. 【spring mvc】spring mvc POST方式接收单个字符串参数,不加注解,接收到的值为null,加上@RequestBody,接收到{"uid":"品牌分类大”},加上@RequestParam报错 ---- GET方式接收单个参数的方法

    spring mvc POST方式 接收单个参数,不加任何注解,参数名对应,接收到的值为null spring mvc POST方式 接收单个参数,加上@RequestBody,接收到参数格式:{&q ...

  5. Android2017进阶知识点、面试题及答案(精选版)

    前言 没啥好说的,撸起袖子就是干吧! 1 2 JAVA 相关 1.静态内部类.内部类.匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内 ...

  6. iOS:CocosPods的装配和配置ReactiveCocoa

    关于CocosPods的安装和配置ReactiveCocoa 1. CocoaPods和ReactiveCocoa的安装 CocoaPods是iOS最常用最有名的类库管理工具 使用ReactiveCo ...

  7. table表头固定

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. HTTP/2 Server Push 详解(上)

    收录待用,修改转载已取得腾讯云授权 译者:TAT.Johnny 原文:https://www.smashingmagazine.com/2017/04/guide-http2-server-push/ ...

  9. Android使用tcpdump抓包

    AllJoyn中有个问题:Server切换到Client后,重新加入其他Server时join session会失败,原因是timeout(join session是异步的,在指定时间内没有收到回应) ...

  10. npm添加淘宝镜像

    原文:http://cnodejs.org/topic/4f9904f9407edba21468f31e npm是一个很好用的工具,全场是Node Packet Manager,是一个nodejs的包 ...