BZOJ 1607 Usaco 轻拍牛头
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ 1607 Usaco 轻拍牛头相关的知识,希望对你有一定的参考价值。
自己和sb一样,这种题目都会WA。难受~
先读入统计一遍所有的数
之后因为每个数只会被最小的因数除去
所以枚举每个数的倍数.
1 #include <cstdio> 2 #include <cstring> 3 4 int n; 5 int now[100005],vis[1000005],ask[1000005]; 6 7 int main(){ 8 memset(ask,-1,sizeof(ask)); 9 scanf("%d",&n); 10 for(int i=1;i<=n;i++){ 11 scanf("%d",&now[i]); 12 vis[now[i]]++; 13 } 14 for(register int i=1;i<=1000000;i++){ 15 if(vis[i]){ 16 for(int j=1;j<=1000000 && i*j<=1000000;j++){ 17 ask[i*j]+=vis[i]; 18 } 19 } 20 } 21 for(int i=1;i<=n;i++){ 22 printf("%d\n",ask[now[i]]); 23 } 24 return 0; 25 }
以上是关于BZOJ 1607 Usaco 轻拍牛头的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ-1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 (筛法暴力)
BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头