7-2 整除分块 (15 分)

整除分块,又称数论分块。是数论算法中的重要技巧,你可以在各种需要枚举因子的连续求和类问题中见到它的身影。如杜教筛,莫比乌斯反演化简后的整除分段求和等。 整除分块基于这样一个数学现象:对于任意正整数N,集合

的大小总是严格小于2sqrt(N)。 例如当N=10时S={10,5,3,2,1},这就使得对于⌊N/i⌋类型的求和类问题,只要快速枚举S集合,就能在sqrt(N) 级别的复杂度内解决问题。

⌊ ⌋符号是向下取整符,⌊x⌋表示不大于x的最大正整数

在学习整除分块这一算法后提出了一个新的问题,对于给定正整数N,x,令S={x:x=⌊ N/i ⌋,i∈1,2,3...N},时⌊ N/x ⌋在S中是第几大呢(去重降序排序后第几个)?

输入格式:

第一行输入一个正整数T(1≤T≤10 ^6 ),表示测试案例的数目,对于每组案例。 一行两个正整数N,x(1≤x≤N≤10^9 )。

输出格式:

对于每个案例,输出一个正整数,即⌊ N/x ⌋在集合S中降序排第几大。

输入样例::

2
25 9
1000000000 1000000000

结尾无空行

输出样例:

8
63244

结尾无空行

#include<iostream>
#include<cmath>
using namespace std;
double a[100000000];
int b[100000000];
int main(){int T,cnt=0,p=0;double n,m,x,y;cin>>T;while(T--){cin>>n>>x;
//         cout<<n<<" "<<x<<endl;m=2*sqrt(n);if(m-(int)m)m=(int)m-1;
//         cout<<m<<endl;for(int i=1;i<=n;i++){a[i]=n/i;if(a[i]-int(a[i]))a[i]=(int)a[i];}
//         cout<<n<<" "<<x<<endl;y=n/x;
//         cout<<n/x<<endl;if(y-(int)y)y=(int)y;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(a[i]>=a[j]){int t=a[i];a[i]=a[j];a[j]=t;}}}
//       for(int i=1;i<=n;i++)cout<<a[i]<<" ";
//         cout<<endl;for(int i=1;i<=n;i++)if(a[i]!=a[i-1]){
//          cout<<a[i]<<" ";b[p++]=a[i];}
//         cout<<endl;for(int i=1;i<=p;i++){if(y<=b[i]){cnt++;}}cout<<cnt<<endl;}return 0;
}

7-2 整除分块 (15 分)相关推荐

  1. 拼题A 2021 跨年挑战赛 7-5 整除阶乘 (15分)

    题目 本题要求你在给定区间 [a,b] 内找出使得 n​2​​ +1 整除 n! 的所有正整数 n. 输入格式: 输入在一行中给出两个正整数 0<a<b≤10​4​​ ,其中 (b−a) ...

  2. 【数论】整除分块(数论分块)

    目录 引入 找规律 分块数量(时间复杂度分析) 分块边界 模板 例题 1.约束研究 2.约数和 3.余数求和 4.Fear Factoring 5.Floor and Mod 引入 整除分块是数论问题 ...

  3. C -求和公式(整除分块)

    ​ 先讲下整除分块是个啥:要求∑i=1n\sum_{i=1}^n∑i=1n​n/i 的值,这时候暴力需要O(n)的时间.由于这个区间是连续的,且'/'是向下取整,当i不能整除k时,n/i会等于最小的i ...

  4. 18行代码解决:(C语言)L1-046 整除光棍 (20分)

    立志用更少的代码做更高效的表达 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除. ...

  5. L1-046 整除光棍 (20 分)567

    L1-046 整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数 ...

  6. BZOJ1257:[CQOI2007]余数之和(整除分块)

    Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值 其中k mod i表示k除以i的余数. 例如j(5 ...

  7. 整除光棍 (20 分)

    整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,1 ...

  8. 【PTA乙级】【1096 大美数 (15 分)】

    2022年3月6日22:23:47 文章目录 2022年3月6日22:23:47 1096 大美数 (15 分) 1.[题目描述] 2.[题解] 1096 大美数 (15 分) 1.[题目描述] 题目 ...

  9. 【PAT乙级】1096 大美数 (15 分) DFS回溯解法

    题目 1096 大美数 (15 分) 若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为"大美数".本题就要求你判断任一给定的正整数是否是"大美数&qu ...

最新文章

  1. 复数乘法_leetcode No.537 复数乘法
  2. iOS - OC iOS 开发体系
  3. Windows Server 2016 部署Hyper-V
  4. 中国无碳复写纸行业竞争现状与运行态势研究报告2022年
  5. 一行命令搭建内部的管道
  6. C#23种设计模式WebCast讲解笔记大全(25讲)
  7. Python 列表 count( )方法
  8. SQL Server创建视图
  9. 64位Office 2010 连接SOHU IMAP服务器遇到问题
  10. 用最简单的例子告诉你kafka是怎么用的
  11. Qt::WA_QuitOnClose
  12. PXC pxc_strict_mode
  13. 为知笔记使用Typora为默认编辑器(含坑)
  14. 在JavaScript中改变鼠标指针样式的方法
  15. android 短信数据库在哪个文件夹,安卓手机的短信备份后存到了哪个文件夹下
  16. 提取最后一个星号后的数字
  17. android x86虚拟机不识别网卡,科学网-AndroidSDK-虚拟机之Intel x86虚拟机安装-几个错误解决方法-联网-马飞的博文...
  18. python爬虫需要cookie_python爬虫(六) Cookie
  19. 重新设置用户名之后vscode连接出错
  20. Level Set Evolution Without Re-initialization: A New Variational Formulation

热门文章

  1. 线程安全和线程不安全的简述及辅助记忆
  2. Selenium常用API的使用java语言之6-WebDriver常用方法
  3. React Native (一) react-native-video实现音乐播放器和进度条的功能
  4. 三个线程打印ABC10次,ABCABCABC....
  5. hdu 4856 Tunnels
  6. SAP学习的一个“自作聪明”
  7. 时间复杂度O(1) O(n) O(logn) O(nlogn)是什么意思?
  8. 五、Spring中的@Import注解
  9. javaScript设计模式之面向对象编程(object-oriented programming,OOP)(二)
  10. NEU(Fst Network Embedding Enhancement via High Order Proximity Approximation)