题目:

洛谷2926

(截止至本博客发表时,BZOJ1607题面有误,正确题面请到洛谷2926查看)
分析:
=
一句话题意:给定\(n\)个数\(\{a_i\}\),求对于每个\(a_i\)有多少个数\(a_j\)满足\(a_i|a_j\) \((1\leq i,j\leq n\)且\(i \neq j)\)
按题意模拟的话\(O(n^2)\)肯定过不去。考虑对于一个数\(a_i\),它仅会对所有\(a_i*k(1 \leq k\)且\(k\)为整数) 产生1的贡献。于是可以用\(M/a_i(M=max(\{a_i\}))\)的时间给所有\(ans[a_i*k]\)加上1 (\(ans[x]\)表示有多少个\(a_i\)能整除\(x\)) ,据说这样的复杂度是\(O(n\log n)\)的
注意可能有多个\(a_i\)相等,枚举\(a_i\)可能会多次执行相同的操作,费时间。用\(cnt[x]\)记录有多少个\(i\)满足\(a[i]=x\)。枚举\(x\),每个\(x\)对\(kx\)的贡献是\(cnt[x]\)
以及一头牛不会拍自己的头,所以最终答案是\(ans[a_i]-1\)(详见代码)

代码:

#include <cstdio>
using namespace std;namespace zyt
{const int M = 1e6 + 10, N = 1e5 + 10;void work(){static int ans[M], cnt[M], arr[N];int n;scanf("%d", &n);for (int i = 1; i <= n; i++){scanf("%d", &arr[i]);cnt[arr[i]]++;}for (int i = 1; i <= M; i++)if (cnt[i])for (int j = i; j <= M; j += i)ans[j] += cnt[i];for (int i = 1; i <= n; i++)printf("%d\n", ans[arr[i]] - 1);}
}
int main()
{zyt::work();return 0;
}

转载于:https://www.cnblogs.com/zyt1253679098/p/9264770.html

【洛谷2926/BZOJ1607】[USACO08DEC]Patting Heads拍头(筛法)相关推荐

  1. [USACO08DEC]Patting Heads S题解

    这里附上题目链接:[USACO08DEC]Patting Heads S. ~~手动分割~~ 题目 思路解析 1.暴力搜索 将每头牛拿的数字存下. 分别将每头牛拿的数作为被除数,逐一检查剩下的n-1头 ...

  2. 线性筛法 欧拉筛c语言,[洛谷P3383][模板]线性筛素数-欧拉筛法

    Hibernate Hql 总结 1.from子句 Hibernate中最简单的查询语句的形式如下: from eg.Cat该子句简单的返回eg.Cat类的所有实例. 通常我们不需要使用类的全限定名, ...

  3. 【洛谷 P6151 [集训队作业2019] 青春猪头少年不会梦到兔女郎学姐】【容斥原理+生成函数】

    题意 定义一个序列的权值为:把序列首尾相接成一个环,环上每段数字长度的乘积.有nnn种数字,求所有满足第iii种数字恰好出现aia_iai​次的排列的权值之和. n,∑ai≤2∗105n,\sum a ...

  4. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  5. 【数学1】基础数学问题 - 题单 - 洛谷

    这里写目录标题 [[数学1]基础数学问题 - 题单 - 洛谷](https://www.luogu.com.cn/training/117) [P1143 进制转换](https://www.luog ...

  6. 洛谷 数论入门相关题目--2022.01.22

    P2926 [USACO08DEC]Patting Heads S 拍头 https://www.luogu.com.cn/problem/P2926 P3383 [模板]线性筛素数 https:// ...

  7. 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm

    题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定奶牛必须遵 ...

  8. 洛谷 P3391 文艺平衡树

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 --b ...

  9. [洛谷P3292] [SCOI2016]幸运数字

    洛谷题目链接:[SCOI2016]幸运数字 题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城 ...

最新文章

  1. 移动广告平台到底哪个好?哪个能赚的米米多?
  2. 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification
  3. [数据分析][评价方法]打分式评价-信息熵理论与熵权法
  4. 【Groovy】字符串 ( 字符串注入函数 | asBoolean | execute | minus )
  5. Step by Step WebMatrix网站开发之二:使用WebMatrix(2)
  6. 用Delphi创建服务程序
  7. 列一下OOP规约,编程的时候共勉!别踏坑!
  8. mybatis update返回值_mybatis 详解(六)通过mapper接口加载映射文件
  9. 神经网络中的病态曲率-Pathological Curve-举例
  10. MySQL高级 —— 查询性能优化
  11. docker 镜像注册【图文教程】
  12. 【优化调度】基于matlab一致性算法求解电力系统分布式经济调度优化问题【含Matlab源码 770期】
  13. Windows XP Embedded下载
  14. U盘无法格式化--量产工具成功救活
  15. c语言程序超市广告推广流程图,C语言程序设计超市管理系统1.doc
  16. SAEJ3061汽车信息安全指南文档
  17. Qt开发技术:Qt的动态静态插件框架介绍和Demo
  18. 以太坊学习路线——(五)DApp开发:简易版去中心化微博
  19. 【改进粒子群优化算法】相量普氏群优化(PPSO)算法(matlab代码实现)
  20. java计算机毕业设计居家养老系统MyBatis+系统+LW文档+源码+调试部署

热门文章

  1. cocos2d-x 3.0rc1 编译cpp-testsproject
  2. Jan 09 - Count Primes; Mathematics; Optimization; Primes; DP;
  3. 为Eclipse安装主题插件
  4. WPF后台自定义文字带背景的选择状态按钮
  5. 在Microsoft VS.net 2005下开发Linux环境的网站应用
  6. 华容道(java版)
  7. LeetCode(872)——叶子相似的树(JavaScript)
  8. LeetCode(905)——按奇偶排序数组(JavaScript)
  9. IPv4 和 IPv6 有什么区别
  10. 你有什么难忘的出差经历?