感悟:这又是zimpha巨出的一场题,然后04成功fst(也就是这题)

实际上还是too young,要努力增加姿势,

分析:直接枚举这些数不好枚举,换一个角度,枚举x*d,也就是d的另一个乘数是多少

显然  x<=min(d,(n-1)/d),x还得是质数,最后发现x必须小于d的最小因子

然后预处理10w以内的素数,然后每次先得到k=min(d,(n-1)/d),然后看d最小因子是否小于k

这题的关键就在找d的最小因子,我是暴力找的(然后碰上全是大素数就t了)

实际上当d是大素数的时候,k很小,直接枚举质数,如果大于k还没有,就不用再找了(反正去最小)

赛后加上这一个限制就过了

吐槽:还是年轻

  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <string.h>
  5. #include <vector>
  6. #include <math.h>
  7. #include <stack>
  8. #include <map>
  9. #define x first
  10. #define y second
  11. using namespace std;
  12. typedef long long LL;
  13. const int N = 1e5+;
  14. const int INF = 0x3f3f3f3f;
  15. typedef pair<int,int>pii;
  16. bool vis[N];
  17. int prime[N>>],tot;
  18. void getprime(){
  19. for(int i=;i*i<=N-;++i){
  20. if(vis[i])continue;
  21. for(int j=i*i;j<=N-;j+=i)
  22. vis[j]=true;
  23. }
  24. for(int i=;i<=N-;++i)
  25. if(!vis[i])prime[++tot]=i;
  26. }
  27. int main(){
  28.  
  29. getprime();
  30. int T;
  31. scanf("%d",&T);
  32. while(T--){
  33. int n,d;
  34. scanf("%d%d",&n,&d);
  35. int tmp=min(d,(n-)/d);
  36. int flag=-;
  37. for(int i=;i<=tot&&prime[i]<=tmp&&1ll*prime[i]*prime[i]<=d;++i){
  38. if(d%prime[i])continue;
  39. else {flag=prime[i];break;}
  40. }
  41. if(flag==-)flag=d;
  42. tmp=min(tmp,flag);
  43. int k=lower_bound(prime+,prime++tot,tmp)-prime;
  44. if(k==tot+||prime[k]>tmp)--k;
  45. printf("%d\n",k);
  46. }
  47. return ;
  48. }

HDU 5750 Dertouzos 简单数学的更多相关文章

  1. hdu 5750 Dertouzos 素数

    Dertouzos Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  2. BestCoder HDU 5750 Dertouzos

    Dertouzos 题意: 有中文,不说. 题解: 我看了别人的题解,还有个地方没懂, 为什么是 if(d%prime[i]==0) break; ? 代码: #include <bits/st ...

  3. HDU 5750 Dertouzos

    Dertouzos Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  4. HDU 1840 Equations (简单数学 + 水题)(Java版)

    Equations 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1840 ——每天在线,欢迎留言谈论. 题目大意: 给你一个一元二次方程组,a(X^2 ...

  5. 题解报告:hdu 5750 Dertouzos(最大真约数、最小素因子)

    Problem Description A positive proper divisor is a positive divisor of a number n, excluding n itsel ...

  6. HDU 5073 Galaxy (2014 Anshan D简单数学)

    HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description G ...

  7. hdu 2200 Eddy's AC难题(简单数学。。)

    题意: N个人,每个人AC的题数都不一样. Eddy想从中选出一部分人(或者全部)分成两组.必须满足第一组中的最小AC数大于第二组中的最大AC数. 问共有多少种不同的选择方案. 思路: 简单数学.. ...

  8. HDU 2085 核反应堆 --- 简单递推

    HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...

  9. 洛谷试炼场-简单数学问题-P1403 [AHOI2005]-因数

    洛谷试炼场-简单数学问题 P1403 [AHOI2005]约数研究 Description 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机"Samuel I ...

随机推荐

  1. DataRow.RowState 属性

    RowState 的值取决于两个因素:已对该行执行的操作的类型,以及是否已对 DataRow 调用了 AcceptChanges. private void DemonstrateRowState() ...

  2. hdu 4578 Transformation 线段树

    没什么说的裸线段树,注意细节就好了!!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> ...

  3. Oracle 6 - 锁和闩 - 锁类型

    Oracle锁大类 1.DML锁 (SELECT, INSERT, UPDATE, DELETE, MERGE是对数据库加的锁, 可能是行锁,也可能是表锁) 2.DDL锁 (Create, Alter ...

  4. Android:密码显示隐藏

    效果: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...

  5. [cocoapods]如何卸载cocoapods

    今天我们来讲一下cocoapods的删除步骤! 1.移除pod组件,打开终端执行which pod 然后输出了路径,我的是 /usr/local/bin/pod 2. 移除Cocoapods组件,继续 ...

  6. SQL查询(笔记2——实体查询)

    SQL查询(笔记2——实体查询) 二.实体查询 如果查询返回了某个数据表的全部数据列,且该数据表有对应的持久化类映射,我们就把查询结果转换成实体查询.将查询结果转换成实体,可以使用SQLQuery提供 ...

  7. sql server 读取表结构

    SELECT 表名 then d.name else '' end, 字段序号=a.colorder, 主键 FROM sysobjects where xtype='PK' and name in ...

  8. linux中proc文件系统 -- ldd3读书笔记

    1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...

  9. Java中静态代码块,代码块,构造方法优先级、区别及代码示例

    在项目中遇到了代码块的知识点,跑了下测试,写下结论 代码优先级:静态代码块 -> 构造代码块 -> 构造方法 多个代码块优先级,按照“先定义的代码先执行,后定义的代码后执行”原则执行 静态 ...

  10. CodeForces Round #278 (Div.2) (待续)

    A 这么简单的题直接贴代码好了. #include <cstdio> #include <cmath> using namespace std; bool islucky(in ...