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

Time Limit: 3 Sec Memory Limit: 64 MB
Submit: 1404 Solved: 733
[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.
写在前面:让我们来巧妙地优化吧
——————————————————————————————————————————————————
思路:基本就是像筛素数那样找约数,但是如果一个个找会被极限数据卡死(比如前面全是个位数,最后来个1000000),所以加一步优化——把数值相同的放一起算,这样就能节省很多时间了
代码:

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int n,ans[1000010],a[100010],maxn,num[1000010];
main()
{scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]),num[a[i]]++,//记录每个数值出现次数maxn=max(maxn,a[i]);for (int i=1;i<=n;i++)if (num[a[i]])//判断其是否用过{int k=a[i];while (k<=maxn){ans[k]+=num[a[i]];k+=a[i];}num[a[i]]=0;}for (int i=1;i<=n;i++)printf("%d\n",ans[a[i]]-1);
}

【BZOJ1607】轻拍牛头,筛一筛相关推荐

  1. BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1607 题意概括 给出n个数,每一个数字<1000000,对于每一个数,让你求剩余的n-1个数 ...

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

    傻逼题...(然而一开始题意都不懂) #include<cstdio> #include<cstring> using namespace std; int n,a[11000 ...

  3. 【BZOJ】1607: [Usaco2008 Dec]Patting Heads 轻拍牛头

    [算法]模拟 #include<cstdio> #include<algorithm> using namespace std; const int maxn=100010,m ...

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

    翻过来考虑影响,考虑多少数是他的倍数. 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 ...

  5. BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1607 题意: 给你n个数,问你除a[i]之外,有多少个数是a[i]的约数. 题解: ans ...

  6. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  7. 程序“媛”公号,越来越少了,这次推荐俩,轻拍!

    整理了一些高质量的公众号,有技术的,有管理的,有轻松的,有严肃的,大伙自取. 最后一个"丽雪"与"翠翠"的公号,有照片,技术圈写公号的程序媛越来越少,大家多多支 ...

  8. 记者亲历最强太极推手:被大师轻拍徒弟跌倒

    图片作者:网络转载 新华社石家庄9月3日专电(新华社"中国网事"记者朱峰范世辉)连日来,一段"经梧太极第一代传人闫芳老师收徒仪式上推手"的视频在网上热播, 视频 ...

  9. [质数筛] 质数筛算法详解

    今天给大家讲解质数筛这个算法. 在信息竞赛中,我们总是会遇到很多判断质数的题目,那么在这里就由我来给大家讲解一下质数筛算法(这里所有讲的算法都是基于筛出从 1 1 1 到 n n n 之间的素数的算法 ...

最新文章

  1. 【炼丹】深度学习多目标优化的多个loss应该如何权衡
  2. 转:MFC中创建多线程
  3. 利用python爬虫(案例6+part14)--如何爬取科研数据
  4. 雪妖现世:给SAP Fiori Launchpad增添雪花纷飞的效果
  5. [工具]微软的学习平台Microsoft Learn很好用,推荐一下
  6. LeetCode 1500. Design a File Sharing System(哈希map+优先队列)
  7. VO(DTO)模式在架构设计中是否需要
  8. Cloud 已死,本地部署万岁!
  9. Understand源代码分析工具
  10. dalsa相机设置编码器外触发_Modicon M262 编码器接口功能介绍
  11. js ajax 同步 执行完js之后才执行插入html
  12. Qpython实现命令行的贪吃蛇
  13. curl的安装及使用
  14. c语言猜数字课设报告,c语言猜数字课程设计报告.doc
  15. 计算机睡眠状态网络是断开的吗,电脑进入睡眠模式会自动断网如何解决
  16. # Android12 wifi和4G同时使用
  17. 都在说CI/CD,到底什么是CI/CD
  18. mysql数据库引擎(show engines)
  19. rust申请解封_参考 - Rust的确切自动解除引用规则是什么?
  20. 使用 jQuery Validate 进行表单验证

热门文章

  1. c语言sqlserver进行odbc编程,在VS下用C语言连接SQLServer2008
  2. href up test.php,test.php
  3. R语言学习笔记(七)方差分析
  4. Python官方文档学习心得(第二篇)
  5. @configurationproperties注解的使用_徒手使用SpringBoot自定义Starter启动器
  6. python怎么测试uwsgi并发量_nginx + uWSGI 为 django 提供高并发
  7. c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换
  8. linux既能归档也能压缩的命令,Linux压缩及归档
  9. call stack是什么错误_Go语言(golang)的错误(error)处理的推荐方案
  10. python db2 linux 安装,python安装DB2模块