2 条题解

  • -1
    @ 2025-10-8 17:15:00
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int ans[N], s[N], a[N];
    bool v[N];
    int main()
    {
        int n;scanf("%d", &n);
        memset(s, 0, sizeof(s));
        for(int i=1;i<=n;i++)scanf("%d", &a[i]), s[a[i]]++;
        memset(v, 0, sizeof(v));
        for(int i=1;i<=n;i++)
        {
            if(v[a[i]])continue;
            ans[a[i]]+=s[a[i]]-1;
            for(int j=a[i]*2;j<=1000000;j+=a[i])
            {
                ans[j]+=s[a[i]];
            }
            v[a[i]]=True;
        }
        for(int i=1;i<=n;i++)printf("%d\n", ans[a[i]]);
        return 0;
    }
    
    • -1
      @ 2025-10-8 17:14:50
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e6+10;
      int ans[N],s[N],a[N];
      bool v[N];
      int main()
      {
          int n;scanf("%d",&n);
          memset(s,0,sizeof(s));
          for(int i=1;i<=n;i++)scanf("%d",&a[i]),s[a[i]]++;
          memset(v,0,sizeof(v));
          for(int i=1;i<=n;i++)
          {
              if(v[a[i]])continue;
              ans[a[i]]+=s[a[i]]-1;
              for(int j=a[i]*2;j<=1000000;j+=a[i])
              {
                  ans[j]+=s[a[i]];
              }
              v[a[i]]=True;
          }
          for(int i=1;i<=n;i++)printf("%d\n",ans[a[i]]);
          return 0;
      }
      • 1

      信息

      ID
      7696
      时间
      500ms
      内存
      128MiB
      难度
      9
      标签
      递交数
      277
      已通过
      31
      上传者