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 }
  • 相关阅读:
    Linux内核使用的GNUC扩展
    linux常用命令--开发调试篇
    代码示例_poll的多路复用
    硬件_红外传感器
    硬件_霍尔感应器
    全志_功能引脚配置_sys_config.fex
    知识_嵌入式常用词汇
    代码示例_Input 按键驱动
    Vmware_安装_tools
    Ubunt_配置_start
  • 原文地址:https://www.cnblogs.com/kirai/p/4783388.html
Copyright © 2011-2022 走看看