• Codeforces Round 827 (Div. 4) D 1e5+双重for循环技巧


    Codeforces Round 827 (Div. 4) D 

    题目链接:

    https://codeforces.com/contest/1742/problem/D

    给定一个由 n个正整数 a1,a2,…,an(1≤ai≤1000)组成的数组。求i+j的最大值,使得ai和aj共质,否则−1,如果不存在这样的i,j。

    例如,考虑数组 [1,3,5,2,4,7,7]。由于a5=4和a7=7是共素数,所以能得到的i+j的最大值是5+7。

    如果两个整数 p 和 q 的唯一被除数是 1 (即它们的【最大公约数】那么这两个整数 p 和 q 是【共素数】

    **输入**

    输入由多个测试用例组成。第一行包含一个整数 t(1< t <10)--测试用例的数量。测试用例说明如下。

    每个测试用例的第一行包含一个整数 $n$(2 < n ,q < 2*10^5)--数组的长度。

    下一行包含 n个空格分隔的正整数 a_1, a_2,..., a_n(1

    保证所有测试用例的 n之和不超过 2*10^5。

    **输出**

    对于每个测试案例,输出一个整数 i + j的最大值,使得i和j满足a_i和a_j是共素数的条件,或者在没有i、j满足条件的情况下输出-1。

    **注**

    对于第一个测试案例,我们可以选择指数之和等于 6的 i = j = 3,因为 1和 1是共素数。

    对于第二种检验情况,我们可以选择 i = 7和 j = 5,指数之和等于 7 + 5 = 12,因为 7和 4是共素数。

    思想:双重遍历n肯定会超时,除了二分,我们考虑遍历ai,ai的范围是1000,考虑ai是否存在,然后进行计算。

    代码:

    1. // Problem: D. Coprime
    2. // Contest: Codeforces - Codeforces Round 827 (Div. 4)
    3. // URL: https://codeforces.com/contest/1742/problem/D
    4. // Memory Limit: 256 MB
    5. // Time Limit: 3000 ms
    6. //
    7. // Powered by CP Editor (https://cpeditor.org)
    8. #include<bits/stdc++.h>
    9. using namespace std;
    10. typedef long long ll;
    11. const int N = 2e5+5;
    12. int gcd(int x,int y){
    13. if(y==0) return x;
    14. return gcd(y,x%y);
    15. }
    16. int main(){
    17. int T;
    18. cin>>T;
    19. while(T--){
    20. int n;
    21. cin>>n;
    22. int a[N];
    23. map<int,int> mp;
    24. for(int i=1;i<=n;i++){
    25. cin>>a[i];
    26. mp[a[i]]=i;
    27. }
    28. int maxv=0;
    29. for(int i=1;i<=1000;i++){
    30. if(!mp[i]) continue;
    31. for(int j=1;j<=1000;j++){
    32. if(!mp[j]) continue;
    33. if(gcd(i,j)==1){
    34. maxv=max(maxv,mp[i]+mp[j]);
    35. }
    36. }
    37. }
    38. if(maxv==0) cout<<"-1\n";
    39. else cout<<maxv<<"\n";
    40. }
    41. return 0;
    42. }

  • 相关阅读:
    自主专利和转让专利的区别
    Win10如何设置窗口护眼色
    MYSQL的多版本并发控制MVCC(Multi-Version Concurrency Control)
    UE5 Sequencer 使用指导 - 学习笔记
    java 根据对象的boolean字段对集合进行排序
    QT--day5
    Node.js 中解析 HTML 的方法介绍
    2022.8.4 模拟赛
    基于自适应Sigmoid型函数的内镜图像增强与空间变颜色再现方法
    慢SQL优化
  • 原文地址:https://blog.csdn.net/m0_73896521/article/details/132816390