【BZOJ1607】轻拍牛头,筛一筛
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】轻拍牛头,筛一筛相关推荐
- BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法
欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1607 题意概括 给出n个数,每一个数字<1000000,对于每一个数,让你求剩余的n-1个数 ...
- bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
傻逼题...(然而一开始题意都不懂) #include<cstdio> #include<cstring> using namespace std; int n,a[11000 ...
- 【BZOJ】1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
[算法]模拟 #include<cstdio> #include<algorithm> using namespace std; const int maxn=100010,m ...
- bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
翻过来考虑影响,考虑多少数是他的倍数. 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 ...
- BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1607 题意: 给你n个数,问你除a[i]之外,有多少个数是a[i]的约数. 题解: ans ...
- [复习]莫比乌斯反演,杜教筛,min_25筛
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...
- 程序“媛”公号,越来越少了,这次推荐俩,轻拍!
整理了一些高质量的公众号,有技术的,有管理的,有轻松的,有严肃的,大伙自取. 最后一个"丽雪"与"翠翠"的公号,有照片,技术圈写公号的程序媛越来越少,大家多多支 ...
- 记者亲历最强太极推手:被大师轻拍徒弟跌倒
图片作者:网络转载 新华社石家庄9月3日专电(新华社"中国网事"记者朱峰范世辉)连日来,一段"经梧太极第一代传人闫芳老师收徒仪式上推手"的视频在网上热播, 视频 ...
- [质数筛] 质数筛算法详解
今天给大家讲解质数筛这个算法. 在信息竞赛中,我们总是会遇到很多判断质数的题目,那么在这里就由我来给大家讲解一下质数筛算法(这里所有讲的算法都是基于筛出从 1 1 1 到 n n n 之间的素数的算法 ...
最新文章
- 【炼丹】深度学习多目标优化的多个loss应该如何权衡
- 转:MFC中创建多线程
- 利用python爬虫(案例6+part14)--如何爬取科研数据
- 雪妖现世:给SAP Fiori Launchpad增添雪花纷飞的效果
- [工具]微软的学习平台Microsoft Learn很好用,推荐一下
- LeetCode 1500. Design a File Sharing System(哈希map+优先队列)
- VO(DTO)模式在架构设计中是否需要
- Cloud 已死,本地部署万岁!
- Understand源代码分析工具
- dalsa相机设置编码器外触发_Modicon M262 编码器接口功能介绍
- js ajax 同步 执行完js之后才执行插入html
- Qpython实现命令行的贪吃蛇
- curl的安装及使用
- c语言猜数字课设报告,c语言猜数字课程设计报告.doc
- 计算机睡眠状态网络是断开的吗,电脑进入睡眠模式会自动断网如何解决
- # Android12 wifi和4G同时使用
- 都在说CI/CD,到底什么是CI/CD
- mysql数据库引擎(show engines)
- rust申请解封_参考 - Rust的确切自动解除引用规则是什么?
- 使用 jQuery Validate 进行表单验证
热门文章
- c语言sqlserver进行odbc编程,在VS下用C语言连接SQLServer2008
- href up test.php,test.php
- R语言学习笔记(七)方差分析
- Python官方文档学习心得(第二篇)
- @configurationproperties注解的使用_徒手使用SpringBoot自定义Starter启动器
- python怎么测试uwsgi并发量_nginx + uWSGI 为 django 提供高并发
- c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换
- linux既能归档也能压缩的命令,Linux压缩及归档
- call stack是什么错误_Go语言(golang)的错误(error)处理的推荐方案
- python db2 linux 安装,python安装DB2模块