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

Time Limit: 3 Sec  Memory Limit: 64 MB
Submit: 1245  Solved: 650
[Submit][Status][Discuss]

Description

  今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏.
    贝茜让N(1≤N≤100000)头奶牛坐成一个圈.除了1号与N号奶牛外,i号奶牛与i-l号和i+l号奶牛相邻.N号奶牛与1号奶牛相邻.农夫约翰用很多纸条装满了一个桶,每一张包含了一个独一无二的1到1,000,000的数字.
    接着每一头奶牛i从柄中取出一张纸条Ai.每头奶牛轮流走上一圈,同时拍打所有编号能整除在纸条上的数字的牛的头,然后做回到原来的位置.牛们希望你帮助他们确定,每一头奶牛需要拍打的牛.

Input

    第1行包含一个整数N,接下来第2到N+1行每行包含一个整数Ai.

Output

 
    第1到N行,每行的输出表示第i头奶牛要拍打的牛数量.

Sample Input

5 //有五个数,对于任一个数来说,其它的数有多少个是它的约数
2
1
2
3
4

INPUT DETAILS:

The 5 cows are given the numbers 2, 1, 2, 3, and 4, respectively.

Sample Output

2
0
2
1
3

OUTPUT DETAILS:

The first cow pats the second and third cows; the second cows pats no cows;
etc.

HINT

Source

Silver

注意读题,记录每个奶牛持有的卡号被整除的次数,直接ans[a[i]],类似于求素数,筛法

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#define maxn 1000000+10
#define inf 0x7fffffff
using namespace std;
int a[maxn],cnt[maxn],ans[maxn];
int main()
{
int n,maxm=-inf;
cin>>n;
for(int i=;i<=n;++i) scanf("%d",&a[i]),cnt[a[i]]++;
for(int i=;i<=n;++i) maxm=max(maxm,a[i]);
for(int i=;i<=maxm;++i)
{ if(cnt[i])
for(int j=i;j<=maxm;j+=i) ans[j]+=cnt[i];}
for(int i=;i<=n;++i) printf("%d\n",ans[a[i]]-);
return ;
}

最新文章

  1. Error Domain=NSURLErrorDomain Code=-999 “The operation couldn’t be completed.
  2. AsyncHttpClient 源码分析
  3. navicat使用
  4. django使用ldap认证
  5. 《uml大战需求分析》阅读笔记05
  6. Visual Studio 2012优化
  7. Dynamics CRM 2013 SP1 升级到Dynamics CRM 2015
  8. Qt 学习之路 2(80):定位器
  9. USB OTG简要
  10. Windows 10安裝在USB外接硬碟(使用命令模式)
  11. jQuery制作右侧边垂直二级导航菜单
  12. 201621123050 《Java程序设计》第7周学习总结
  13. python Drools
  14. Vue 添加外部的时间插件不触发v-model事件更改数据
  15. Java如何在指定端口创建套接字?
  16. ESB(Enterprise Service Bus)企业服务总线介绍
  17. 我的QML
  18. scheme的split实现
  19. [leetcode]Evaluate Reverse Polish Notation @ Python
  20. UK 更新惊魂记

热门文章

  1. Java - 类加载的时候,是有缺省同步锁的
  2. 16.1-Jenkins持续集成01—Jenkins服务搭建和部署
  3. H5各种头部meta标签的功能
  4. tcl之基本语法—3
  5. 微信小程序中 this.setData is not a function报错
  6. Linux 面试的一些基础命令
  7. A * B Problem Plus HDU - 1402 (FFT)
  8. 库函数的使用:sscanf的使用方法
  9. 图文教程:为认证考试搭建Hyper-V家庭实验室
  10. JS空数组的判断