1 条题解

  • 1
    @ 2021-07-17 07:45:11

    对于80%的数据,只要用for循环判断两个数对17的余数即可

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            maxv = max(maxv,(a[i]+a[j])%17);
    

    但是\(n\)很大,我们可以考虑将其对17取模,然后循环0..16

    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {   
        int n,x,maxv=0, a[17]={0};
        cin>>n;
        while(n--) cin>>x, a[x%17]++;
        
        for(int i=0;i<17;i++)for(int j=0;j<17;j++)
        {
            if((i==j && a[i]>=2 )|| (i!=j && a[i] && a[j])) 
                maxv = max(maxv, (i+j)%17);
        } 
        
        cout<<maxv<<endl;
        return 0;
    }
    
  • 1

信息

ID
1271
难度
6
分类
(无)
标签
(无)
递交数
83
已通过
22
通过率
27%
被复制
4
上传者