• 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. }

  • 相关阅读:
    网络安全(黑客)——2024自学
    linux网络编程——UDP编程
    JAVA计算机毕业设计书籍影视评论系统(附源码、数据库)
    融云 IM & RTC 能力上新盘点
    什么是jsx
    水声信号调制方式智能识别技术
    【数据结构--八大排序】之希尔排序
    气象台使用vr模拟仿真实训教学降低成本投入
    【无标题】
    Oracle 提示(hint)方法:use_nl
  • 原文地址:https://blog.csdn.net/m0_73896521/article/details/132816390