2 条题解
-
-1
#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
#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
- 上传者