zoukankan      html  css  js  c++  java
  • LightOJ

    题目链接http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370

    题目大意:给N个数a[i], N <= 1e6,问使 Φ(x) >= a[i] 成立的最小x的所有x的和是多少。

    解题思路:我们知道的是对于素数 m 来说,phi[m] = m - 1。另一方面,对于一个合数 m 来说, phi[m] < phi[x] , x > m && x 是素数。

    因此,我们可以认为,每个非素数 m, 对应的 x 值是大于x的最小素数减一。

    代码:

     1 const int maxn = 2e6 + 100;
     2 vector<int> primes;
     3 int n, a[maxn];
     4 bool vis[maxn];
     5 int lphi[maxn];
     6 
     7 void dowork(){
     8     memset(vis, 0, sizeof(vis));
     9     int mxn = 2e6 + 5;
    10     for(int i = 2; i <= mxn; i++)
    11         for(int j = i * 2; j <= mxn; j += i)
    12             vis[j] = 1;
    13     for(int i = 2; i <= mxn; i++)
    14         if(!vis[i]) primes.push_back(i);
    15     for(int i = 0; i < primes.size(); i++) lphi[primes[i] - 1] = primes[i];
    16     int i = 1, j = 0;
    17     while(i < 2e6 + 5){
    18         int x = primes[j] - 1;
    19         if(i <= x) lphi[i] = lphi[x];
    20         else {
    21             x = primes[++j] - 1;
    22             lphi[i] = lphi[x];
    23         }
    24         i++;
    25     }
    26 } 
    27 ll solve(){
    28     ll ans = 0;
    29     for(int i = 1; i <= n; i++){
    30         ans += lphi[a[i]];
    31     }
    32     return ans;
    33 }
    34 int main(){
    35     dowork();
    36     int T;
    37     scanf("%d", &T);
    38     for(int t = 1; t <= T; t++){
    39         scanf("%d", &n);
    40         for(int i = 1; i <= n; i++) scanf("%d", a + i);
    41         ll ans = solve();
    42         printf("Case %d: %lld Xukha
    ", t, ans);
    43     }
    44 }

    题目:Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe is a very popular coach for his success. He needs some bamboos for his students, so he asked his assistant Bi-Shoe to go to the market and buy them. Plenty of Bamboos of all possible integer lengths (yes!) are available in the market. According to Xzhila tradition,

    Score of a bamboo = Φ (bamboo's length)

    (Xzhilans are really fond of number theory). For your information, Φ (n) = numbers less than n which are relatively prime (having no common divisor other than 1) to n. So, score of a bamboo of length 9 is 6 as 1, 2, 4, 5, 7, 8 are relatively prime to 9.

    The assistant Bi-shoe has to buy one bamboo for each student. As a twist, each pole-vault student of Phi-shoe has a lucky number. Bi-shoe wants to buy bamboos such that each of them gets a bamboo with a score greater than or equal to his/her lucky number. Bi-shoe wants to minimize the total amount of money spent for buying the bamboos. One unit of bamboo costs 1 Xukha. Help him.

    Input

    Input starts with an integer T (≤ 100), denoting the number of test cases.

    Each case starts with a line containing an integer n (1 ≤ n ≤ 10000) denoting the number of students of Phi-shoe. The next line contains n space separated integers denoting the lucky numbers for the students. Each lucky number will lie in the range [1, 106].

    Output

    For each case, print the case number and the minimum possible money spent for buying the bamboos. See the samples for details.

    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

    LightOJ - 1370 

  • 相关阅读:
    QT VS配置UNICODE问题
    深入理解C++中的mutable关键字
    Qt creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(vs2010的嵌入式清单文件)
    hdu 3401 Trade 单调队列优化dp
    QT父子与QT对象delete
    QT下的几种透明效果(三种方法:调色板,透明度属性,自绘)
    QT实现鼠标钩子(使用SetWindowsHookEx安装mouseProc函数)
    VirtualBox的网络设置(6种方式)
    8个成功界面的特性
    熬之滴水成石:Spring--精简的J2EE(7)
  • 原文地址:https://www.cnblogs.com/bolderic/p/7450548.html
Copyright © 2011-2022 走看看