• 华东交通大学2017年ACM“双基”程序设计竞赛 1009


    Problem Description

    MDD随机生成了n(n<le5)个随机数x(x<=1e9),
    这n个随机数排成一个序列,MDD有q(q<=le5)个询问,
    每个询问给你一个a,问你这个序列中有多少个区间的最大公约数不为a

    Input

    第一行输入一个T,表示T组测试样例
    每组样例包含一个n,表示n个随机数
    再输入一个Q,表示Q个询问
    每个询问输入一个a

    Output

    每个询问输出有多少个区间的gcd不为a

    Sample Input

    1
    5
    1 2 4 4 1
    4
    1
    2
    3
    4

    Sample Output

    6
    12
    15
    12
    

     解法:听说还是暴力啊,卧槽

     1 #include <bits/stdc++.h>
     2 #define int long long
     3 
     4 using namespace std;
     5 
     6 int nextInt(){
     7     int d;
     8     scanf("%lld",&d);
     9     return d;
    10 }
    11 
    12 map<int,int> mp;
    13 int a[100010];
    14 int b[100010];
    15 
    16 int gcd(int a,int b){
    17     if(a > b){
    18         swap(a,b);
    19     }
    20     while(a > 0){
    21         int k = b % a;
    22         b = a;
    23         a = k;
    24     }
    25     return b;
    26 }
    27 
    28 signed main(){
    29     int T = nextInt();
    30     while(T--){
    31         mp.clear();
    32         int n = nextInt();
    33         for(int i = 0 ; i < n ; i++){
    34             a[i] = nextInt();
    35             mp[a[i]]++;
    36         }
    37         for(int i = 0 ; i < n ; i++){
    38             for(int j = 0 ; j < n - i - 1 ;  j++){
    39                 b[j] = gcd(a[j],a[j+1]);
    40             }
    41             for(int j = 0 ; j < n - i - 1 ; j++){
    42                 a[j] = b[j];
    43                 mp[a[j]]++;
    44             }
    45         }
    46         int q = nextInt();
    47         while(q--){
    48             int a = nextInt();
    49             printf("%lld
    ",n*(n+1)/2 - mp[a]);
    50         }
    51     }
    52     return 0;
    53 }

     

  • 相关阅读:
    简要集群复制shell脚本
    git命令
    gitlab部署
    QPS、TPS、并发用户数、吞吐量关系
    Windows admin center
    ftp命令行工具
    ftp ftps sftp
    部署 Nethogs
    smtp imap
    如何在【博客园】通过搜索 博主 昵称 来找到博主?
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/7857593.html
Copyright © 2020-2023  润新知