HDU 5750 Dertouzos 简单数学
感悟:这又是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还没有,就不用再找了(反正去最小)
赛后加上这一个限制就过了
吐槽:还是年轻
- #include <stdio.h>
- #include <iostream>
- #include <algorithm>
- #include <string.h>
- #include <vector>
- #include <math.h>
- #include <stack>
- #include <map>
- #define x first
- #define y second
- using namespace std;
- typedef long long LL;
- const int N = 1e5+;
- const int INF = 0x3f3f3f3f;
- typedef pair<int,int>pii;
- bool vis[N];
- int prime[N>>],tot;
- void getprime(){
- for(int i=;i*i<=N-;++i){
- if(vis[i])continue;
- for(int j=i*i;j<=N-;j+=i)
- vis[j]=true;
- }
- for(int i=;i<=N-;++i)
- if(!vis[i])prime[++tot]=i;
- }
- int main(){
- getprime();
- int T;
- scanf("%d",&T);
- while(T--){
- int n,d;
- scanf("%d%d",&n,&d);
- int tmp=min(d,(n-)/d);
- int flag=-;
- for(int i=;i<=tot&&prime[i]<=tmp&&1ll*prime[i]*prime[i]<=d;++i){
- if(d%prime[i])continue;
- else {flag=prime[i];break;}
- }
- if(flag==-)flag=d;
- tmp=min(tmp,flag);
- int k=lower_bound(prime+,prime++tot,tmp)-prime;
- if(k==tot+||prime[k]>tmp)--k;
- printf("%d\n",k);
- }
- return ;
- }
HDU 5750 Dertouzos 简单数学的更多相关文章
- hdu 5750 Dertouzos 素数
Dertouzos Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- BestCoder HDU 5750 Dertouzos
Dertouzos 题意: 有中文,不说. 题解: 我看了别人的题解,还有个地方没懂, 为什么是 if(d%prime[i]==0) break; ? 代码: #include <bits/st ...
- HDU 5750 Dertouzos
Dertouzos Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- HDU 1840 Equations (简单数学 + 水题)(Java版)
Equations 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1840 ——每天在线,欢迎留言谈论. 题目大意: 给你一个一元二次方程组,a(X^2 ...
- 题解报告:hdu 5750 Dertouzos(最大真约数、最小素因子)
Problem Description A positive proper divisor is a positive divisor of a number n, excluding n itsel ...
- HDU 5073 Galaxy (2014 Anshan D简单数学)
HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description G ...
- hdu 2200 Eddy's AC难题(简单数学。。)
题意: N个人,每个人AC的题数都不一样. Eddy想从中选出一部分人(或者全部)分成两组.必须满足第一组中的最小AC数大于第二组中的最大AC数. 问共有多少种不同的选择方案. 思路: 简单数学.. ...
- HDU 2085 核反应堆 --- 简单递推
HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...
- 洛谷试炼场-简单数学问题-P1403 [AHOI2005]-因数
洛谷试炼场-简单数学问题 P1403 [AHOI2005]约数研究 Description 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机"Samuel I ...
随机推荐
- DataRow.RowState 属性
RowState 的值取决于两个因素:已对该行执行的操作的类型,以及是否已对 DataRow 调用了 AcceptChanges. private void DemonstrateRowState() ...
- hdu 4578 Transformation 线段树
没什么说的裸线段树,注意细节就好了!!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> ...
- Oracle 6 - 锁和闩 - 锁类型
Oracle锁大类 1.DML锁 (SELECT, INSERT, UPDATE, DELETE, MERGE是对数据库加的锁, 可能是行锁,也可能是表锁) 2.DDL锁 (Create, Alter ...
- Android:密码显示隐藏
效果: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- [cocoapods]如何卸载cocoapods
今天我们来讲一下cocoapods的删除步骤! 1.移除pod组件,打开终端执行which pod 然后输出了路径,我的是 /usr/local/bin/pod 2. 移除Cocoapods组件,继续 ...
- SQL查询(笔记2——实体查询)
SQL查询(笔记2——实体查询) 二.实体查询 如果查询返回了某个数据表的全部数据列,且该数据表有对应的持久化类映射,我们就把查询结果转换成实体查询.将查询结果转换成实体,可以使用SQLQuery提供 ...
- sql server 读取表结构
SELECT 表名 then d.name else '' end, 字段序号=a.colorder, 主键 FROM sysobjects where xtype='PK' and name in ...
- linux中proc文件系统 -- ldd3读书笔记
1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...
- Java中静态代码块,代码块,构造方法优先级、区别及代码示例
在项目中遇到了代码块的知识点,跑了下测试,写下结论 代码优先级:静态代码块 -> 构造代码块 -> 构造方法 多个代码块优先级,按照“先定义的代码先执行,后定义的代码后执行”原则执行 静态 ...
- CodeForces Round #278 (Div.2) (待续)
A 这么简单的题直接贴代码好了. #include <cstdio> #include <cmath> using namespace std; bool islucky(in ...