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 轻拍牛头 (筛法暴力)

BZOJ 1607 Usaco 轻拍牛头

BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头

bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头

BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头

bzoj 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头——枚举倍数