zoukankan      html  css  js  c++  java
  • [HDOJ5317]RGCDQ

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317

    fn表示n的质因数个数,给定区间,求区间内两数的GCD的最大值。

    预处理出f之后再查询。注意f<=7,所以可以出一个数组dp[n][8]来统计数字n中f的出现次数。

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <iostream>
     6 #include <cmath>
     7 #include <queue>
     8 #include <map>
     9 #include <stack>
    10 #include <list>
    11 #include <vector>
    12 
    13 using namespace std;
    14 
    15 const int maxn = 1000010;
    16 int ll, rr;
    17 int dp[maxn][8];   //f不会超过7,所以分别统计到i的时候各数出现的次数
    18 int f[maxn];
    19 int enu[8];
    20 
    21 void init() {
    22     memset(f, 0, sizeof(f));
    23     memset(dp, 0, sizeof(dp));
    24     for(int i = 2; i < maxn; i++) {
    25         if(!f[i]) {
    26             for(int j = i; j < maxn; j+=i) {
    27                 f[j]++;
    28             }
    29         }
    30     }
    31     for(int i = 2; i < maxn; i++) {
    32         int tmp = i;
    33         for(int j = 1; j <= 7; j++) {
    34             dp[i][j] = (f[i] == j) ? (dp[i-1][j]+1) : dp[i-1][j];
    35         }
    36     }
    37 }
    38 
    39 int main() {
    40     // freopen("in", "r", stdin);
    41     int T;
    42     init();
    43     scanf("%d", &T);
    44     while(T--) {
    45         scanf("%d %d", &ll, &rr);
    46         for(int i = 1; i <= 7; i++) {
    47             enu[i] = dp[rr][i] - dp[ll-1][i];
    48         }
    49         int ans = 1;
    50         for(int i = 7; i >= 1; i--) {
    51             if(enu[i] > 1) {
    52                 ans = i;
    53                 break;
    54             }
    55         }
    56         printf("%d\n", ans);
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    iOS多线程_06_GCD其它用法
    iOS多线程_05_线程间通信NSThread/GCD
    iOS多线程_04_GCD
    iOS多线程_03_Block
    iOS多线程_02_多线程的安全问题
    iOS多线程_01_简介和NSThread
    shell 根据端口号输出所有的pid
    【java核心36讲】接口和抽象类的区别
    CSS布局
    CSS基础
  • 原文地址:https://www.cnblogs.com/kirai/p/4783388.html
Copyright © 2011-2022 走看看