LOJ10199轻拍牛头
题目描述
原题来自:USACO 2008 Dec. Silver
今天是 Bessie 的生日,并且现在是聚会的游戏时间。Bessie 让编号为 1~N 的 N 头奶牛围成一个圈坐(所以除了最后一头牛,第 i 头奶牛与第 i-1 和 i+1 头奶牛相邻,第 N 头奶牛和第 N-1 头与第 1 头奶牛相邻)。同时,Farmer John 拿了个桶,在桶里装了十亿张小纸条,每张小纸条上写有某个范围在[1,10^6] 的整数。
接着,每头奶牛轮流从这个巨桶中抽取一个数 A_i(当然这些数没必要两两不同)。然后第 i 头奶牛走一圈,如果奶牛 i 手中的数字能够被奶牛 j (j<>i) 手中的数字整除,那么奶牛 i 会拍奶牛 j 的头。走完一圈后,奶牛i 回到原来的位置。
奶牛们想让你帮他们计算,对于每头奶牛,它需要拍多少头奶牛的头?
输入格式
第一行包含一个整数N ;
接下来第二到第 N+1 行每行包含一个整数 A_i。
输出格式
第一到第 N 行,第 i 行的输出表示第 i 头奶牛要拍打的牛数量。
样例
样例输入
5
2
1
2
3
4
样例输出
2
0
2
1
3
样例说明
第一头奶牛会拍第二、第三头奶牛,第二头牛不会拍任何奶牛的头,等等。
数据范围与提示
对于全部数据,1<=N<=10^5。
_____________________________________________________________
两两之间暴力枚举判断可以,但是n^2超时。
然后把每一个奶牛的的数值在10^6的范围内把它的倍数加1,这样就不用枚举n个数,复杂的为n*10^6/A_i,这样也可得到76分。
然后把所有的A_i排个序,相同的值的,同事修改而不是加1,这样就可以了。
_____________________________________________________________
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=1e5+10;
4 const int maxm=1e6+10;
5 int n;
6 int a[maxn],tj[maxm],aa[maxn];
7 int b[maxn],jc[maxn];
8 int main()
9 {
10 scanf("%d",&n);
11 for(int i=0;i<n;++i)scanf("%d",a+i),aa[i]=a[i];
12 sort(a,a+n);
13 int ba=0,cnt=0;
14 for(int i=0;i<n;++i)
15 {
16 if(a[i]!=ba)
17 {
18 b[++cnt]=a[i];
19 jc[cnt]++;
20 ba=a[i];
21 }
22 else
23 jc[cnt]++;
24 }
25 for(int i=1;i<=cnt;++i)
26 {
27 for(int j=b[i];j<maxm;j+=b[i])
28 tj[j]+=jc[i];
29 }
30 for(int i=0;i<n;++i)
31 printf("%d\n",tj[aa[i]]-1);
32 return 0;
33 }
LOJ10199轻拍牛头的更多相关文章
- BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 1383 Solved: 7 ...
- BZOJ 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lyds ...
- BZOJ_1607_ [Usaco2008_Dec]_Patting_Heads_轻拍牛头_(筛数)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1607 给出一组n个数,求每个数能被多少个其他的数整除. 分析 暴力一点的做法就是每个数去筛它的 ...
- BZOJ 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 Description 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏. 贝茜让N(1≤N≤10 ...
- BZOJ【1607】轻拍牛头
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 1245 Solved: ...
- [bzoj1607][Usaco2008 Dec]Patting Heads 轻拍牛头_筛法_数学
Patting Heads 轻拍牛头 bzoj-1607 Usaco-2008 Dec 题目大意:题目链接. 注释:略. 想法:我们发现,位置是没有关系的. 故,我们考虑将权值一样的牛放在一起考虑,c ...
- 【BZOJ】1607: [Usaco2008 Dec]Patting Heads 轻拍牛头(特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=1607 其实题目描述不清楚,应该是 别人拿的数能整除自己拿的数 数据范围很大,n<=100000 ...
- bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
筛法. 枚举每个数,它会对它的倍数的答案有贡献. 数大了以后,倍数相应少了很多.比枚举每个数的约数要好的多. 自己yy了一种分步做法.小于sqrt(m)被当作约数枚举,大于sqrt(m)的枚举倍数. ...
- [Usaco2008 Dec]Patting Heads 轻拍牛头[筛法]
Description 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏. 贝茜让N(1≤N≤100000)头奶牛坐成一个圈.除了1号与N号奶牛外,i号奶牛与i-l号和i+l号奶 ...
随机推荐
- [LeetCode]501. Find Mode in Binary Search Tree二叉搜索树寻找众数
这次是二叉搜索树的遍历 感觉只要和二叉搜索树的题目,都要用到一个重要性质: 中序遍历二叉搜索树的结果是一个递增序列: 而且要注意,在递归遍历树的时候,有些参数如果是要随递归不断更新(也就是如果递归返回 ...
- CTF:从0到1 -> zero2one
本篇blog首发0xffff论坛(CTF:从0到1->zero2one - 0xFFFF),中间有各位大佬补充,搬到了个人博客CTF:从0到1 -> zero2one | c10udlnk ...
- stm32之can总线过滤器研究
stm32的can总线的配置如下: CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式 CAN_InitStructure.CAN_A ...
- Buffer的重要属性 position/limit/capacity
1 package nio; 2 3 import java.nio.IntBuffer; 4 5 /** 6 * Buffer的重要属性 position/limit/capacity 7 * po ...
- Java串口编程例子
最近笔者接触到串口编程,网上搜了些资料,顺便整理一下.网上都在推荐使用Java RXTX开源类库,它提供了Windows.Linux等不同操作系统下的串口和并口通信实现,遵循GNU LGPL协议.看起 ...
- 神奇的 SQL 之性能优化 → 让 SQL 飞起来
开心一刻 一天,一个男人去未婚妻家玩,晚上临走时下起了大雨 未婚妻劝他留下来过夜,说完便去准备被褥,准备就绪后发现未婚夫不见了 过了好久,全身淋的像只落汤鸡的未婚夫回来了 未婚妻吃惊的问:" ...
- IndexedDB详解
目录 简介 IndexedDB简介 IndexedDB的使用 IndexedDB的浏览器支持 创建IndexedDB indexdb中的CURD 使用游标cursor 简介 IndexedDB是一种在 ...
- Linux LVM Logical Volume Management 逻辑卷的管理
博主是一个数据库DBA,但是一般来说,是不做linux服务器LVM 逻辑卷的创建.扩容和减容操作的,基本上有系统管理员操作,一是各司其职,专业的事专业的人做,二是做多了你的责任也多了,哈哈! 但是li ...
- 从零开始的C程序设计大作业——学生成绩管理系统
前言 学生成绩管理系统可以说是C语言程序设计的结课的必备大作业了.花了些时间,费了些头发肝了下,完成了两个系统,一个是控制台版本的,另一个用easyx图形库进行了优化. 先放出完成后的演示图片占个坑. ...
- 关联实现上-jsonpath取值
举例子: demo01.py import jsonimport requestsimport jsonpathsession = requests.session()get_param_dict={ ...