当前位置:网站首页>(lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
(lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
2022-07-06 16:23:00 【AC__ dream】
Topic link :Bi-shoe and Phi-shoe - LightOJ 1370 - Virtual Judge
give n A sequence of numbers a[], For each number ai Find an Euler function whose value is greater than or equal to ai Number of numbers bi, Find all the numbers found bi The sum of the minimum values of sum( Euler function is specified here 1 The value of is 0)
Input
Yes T(T<=100) Group data , Each set of data has two lines , The first line gives n(n<=10000) The second line gives the length n Sequence a[],ai The value range of is [1,1000000]
Output
Output a number sum
Sample Input
3
5
1 2 3 4 5
6
10 11 12 13 14 15
2
1 1
Sample Output
Case 1: 22 Xukha
Case 2: 88 Xukha
Case 3: 4 Xukha
analysis : This problem is to examine the Euler function and make a table , If you don't know this, you can check my previous blog , It introduces in detail the principle of Euler function table , Here is the blog address : Euler function method and its basic application _AC__dream The blog of -CSDN Blog _ Euler function method
When we find the Euler function of all numbers , We can directly check the table , Here we can use a greedy thought , First of all, we can know from the definition of Euler function , The Euler function value is greater than x The number of must be greater than x, So every time we look up the first Euler function, the value is greater than a[i] The number of hours can be from a[i] Start looking up the table , Before checking the table, we can check a Array to sort , This will play an optimization role to a certain extent , Then check the table in an increasing order , Here is the code :
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
const int N=1000005;// There must be an Euler function greater than 1000000 Number of numbers , Including prime numbers 1000003 that will do
bool vis[N];
int prime[N],o[N],cnt,a[N];
void init()
{
o[1]=0;// Default in this question 1 The Euler function of is 0
for(int i=2;i<N;i++)
{
if(!vis[i])
{
prime[++cnt]=i;
o[i]=i-1;
}
for(int j=1;j<=cnt&&i*prime[j]<N;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0)
{
o[i*prime[j]]=o[i]*prime[j];
break;
}
else
o[i*prime[j]]=o[i]*(prime[j]-1);
}
}
}
int main()
{
init();
int T;
cin>>T;
for(int _=1;_<=T;_++)
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
int pos=a[1];
long long ans=0;
for(int i=1;i<=n;i++)
{
while(o[pos]<a[i]) pos++;
ans+=pos;
}
printf("Case %d: %lld Xukha\n",_,ans);
}
return 0;
}边栏推荐
- Radar equipment (greedy)
- QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等)
- 860. Lemonade change
- Codeforces Round #802(Div. 2)A~D
- AcWing:第56场周赛
- 807. Maintain the urban skyline
- MariaDB的安装与配置
- Codeforces round 797 (Div. 3) no f
- Determine the Photo Position
- QT implementation window gradually disappears qpropertyanimation+ progress bar
猜你喜欢
随机推荐
Interval sum ----- discretization
QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等)
Advancedinstaller installation package custom action open file
1605. Sum the feasible matrix for a given row and column
第 300 场周赛 - 力扣(LeetCode)
Radar equipment (greedy)
(POJ - 3685) matrix (two sets and two parts)
Date plus 1 day
双向链表—全部操作
1005. Maximized array sum after K negations
2027. Minimum number of operations to convert strings
Maximum product (greedy)
C language is the watershed between low-level and high-level
Interesting drink
日期加1天
指定格式时间,月份天数前补零
The concept of C language array
What is the difficulty of programming?
input 只能输入数字,限定输入
顺丰科技智慧物流校园技术挑战赛(无t4)








