信息
- ID
- 605
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 5
- 标签
- 递交数
- 158
- 已通过
- 60
- 上传者
按照样例去理解,输出的应该是第i头牛被拍的次数。
对于每一个Ai,输出A中有几个数能被它整除(不包括它本身)。
设A中最大的数为maxi,最小的数为mini,我们从mini枚举到maxi,如果这个数在A中出现过,那么我们就将它所有的倍数的答案加上它在A中出现的次数。最后输出时要减去它对自己的贡献。
for(ll i=mini;i<=maxi;i++)
if(cnt[i]) // cnt为i在A中出现的次数
for(ll j=i;j<=maxi;j+=i)
ans[j]+=cnt[i];