[恢]hdu 1239

2011-12-31 01:58:02

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1239

题意:给m、a、b。求一对素数p,q(p<q)使得p*q<=m且p/q >= a/b。若有多对,输出p*q最大的一对。

mark:刚开题看了半天,才看明白啥意思。

看到m是10w,然后case是2000组,一下懵了,以为不能枚举。后来冷静分析下,其实可以。

以下是几个比较重要的结论&分析。

1)若m' = p*q,则必不存在另外一对素数p',q'使得m' = p' * q'。

2) 若p固定,q要满足:1、p*q<=m;2、p/q>=a/b。则可以推出q是满足小于min(m/p, p*b/a)的素数,而因为要求p*q最大,所以q应该是满足条件的最大素数。

3) 因为p>=q而且要求p*q <=m,所以p <=sqrt(m)。

因此,我们只需要从2到sqrt(m)枚举每个素数p,计算出相应的q。m是10w,开根号只有300多,非常小,素数就更少了。即使是2000*300也是可以接受的。

代码:

# include <stdio.h>
# include <stdlib.h>
# include <math.h>


int IsPrime[50010] = {1, 1} ;
int Primes[10000] ;
int pcnt = 0 ;


void init()
{
int i, j ;
for (i = 2 ; i <= 50003 ; i++)
{
if (!IsPrime[i])
{
Primes[pcnt++] = i ;
for (j = 2*i ; j <= 50003 ; j+=i)
IsPrime[j] = 1 ;
}
}
}


int min(int a, int b){return a<b?a:b;}


int main ()
{
int m, a, b, sqrtm ;
int p, q, ansp, ansq ;
init () ;
while (~scanf ("%d%d%d", &m, &a, &b) && (m||a||b))
{
sqrtm = sqrt(1.0*m) ;
ansp = ansq = 1 ;
for (p = 0 ; Primes[p] <= sqrtm ; p++)
{
q = min(m/Primes[p], Primes[p]*b/a) ;
while (IsPrime[q]) q-- ;
if (Primes[p]*q > ansp * ansq)
ansp = Primes[p], ansq = q ;
}
printf ("%d %d\n", ansp, ansq) ;
}
return 0 ;
}



转载于:https://www.cnblogs.com/lzsz1212/archive/2012/01/07/2315423.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器搜索功能的使用

浏览器搜索功能的使用 直接在地址栏中搜索你需要的内容 用浏览器的搜索栏进行搜索 用双引号 " " 进行搜索 转载于:https://www.cnblogs.com/GaoNa/p/11061066.html

ubuntu core 文件产生

关于内核转储的设置方法 1. 内核转储作用 (1) 内核转储的最大好处是能够保存问题发生时的状态。 (2) 只要有可执行文件和内核转储&#xff0c;就可以知道进程当时的状态。 (3) 只要获取内核转储&#xff0c;那么即使没有复现环境&#xff0c;也能调试。 2. 启用内核转储 1.1 查…

在Linux中,用什么命令查看文件或目录的权限?

命令:ll 或者 ls -l 解释&#xff0c;输出的格式如下 -rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符&#xff08;-&#xff09;指定该文件的类型&#xff0c;本例中它是一个常规…

H.264可伸缩编码SVC

第十章 H.264可伸缩编码SVC 10.1 概述 &#xff08;1&#xff09;自适应编码&#xff08;Adaptive Coding) 根据网络状况&#xff0c;编码器可以使用码率控制技术&#xff0c;改变量化参数或编码帧率来生成所需速率的码流。 &#xff08;2&#xff09;转码技术&#xff08;Tr…

shell 需要注意的点

#&#xff01;/bin/bash set -o nounset set -o errexit#set -o nounset #在默认情况下&#xff0c;遇到不存在的变量&#xff0c;会忽略并继续执行&#xff0c;而这往往不符合预期&#xff0c;加入该选项&#xff0c;可以避免恶果扩大&#xff0c;终止脚本的执行。#set -o err…

C#将Json字符串反序列化成List对象类集合

usingSystem.IO;usingSystem.Web.Script.Serialization;usingSystem.Runtime.Serialization.Json;//工具类publicstaticList<T> JSONStringToList<T>(thisstring JsonStr){JavaScriptSerializer Serializer newJavaScriptSerializer();List<T> objs Serial…

mysql Access denied for user root@localhost错误解决方法总结

代码如下 复制代码 # /etc/init.d/mysql stop # mysqld_safe --usermysql --skip-grant-tables --skip-networking & # mysql -u root mysql mysql> UPDATE user SET PasswordPASSWORD(newpassword) where USERroot; mysql> FLUSH PRIVILEGES; mysql> quit # /e…

有趣的反直觉的“三门问题”

————— 第二天 ————— ———————————— 如何进行分析呢&#xff1f;我们不妨回到问题的起点&#xff0c;也就是参与者即将进行初次选择&#xff0c;主持人还没有打开一扇空门的时候。 从上图可以看出&#xff0c;我们总共面临着6种不同的子局面。这些子局面的…

centos 开发环境配置

yum groupinstall Development Tools 通过上面命令下载开发所需要的工具 http://unix.stackexchange.com/questions/140350/linux-g-command-not-found

转使用Moq让单元测试变得更简单

【ASP.Net MVC3 】使用Moq让单元测试变得更简单 前几天调查完了unity。现在给我的任务是让我调查Moq。 以下是自己找了资料&#xff0c;总结并实践的内容。如果有表述和理解错误的地方。恳请指正。 什么是Moq&#xff1f; Moq&#xff08;英语发音是Mock-you 或者只是mock&…

Web Service实现分布式服务的基本原理

简单的说&#xff0c; 就是客户端根据WSDL 生成 SOAP 的请求消息&#xff0c; 通过 HTTP 传输方式&#xff08;也可以是其它传输方式&#xff0c; 如 FTP 或STMP 等&#xff0c;目前 HTTP 传输方式已经成为 J2EE Web Service 的标准&#xff09;传给对方&#xff0c; 服务方实现…

使用docker部署mysql主从复制集群

一、环境搭建 虚拟机环境&#xff1a;centos7 IP:192.168.37.134 用户名&#xff1a;root 密码&#xff1a;123 启动3个容器&#xff0c;一个是master&#xff0c;端口是3307&#xff0c;另外两个是slaver&#xff0c;端口是3308和3309 docker pull mysql:5.7docker run -p …

猛然回首 在这里4年了

猛然回首 在这里4年了 今天浏览博客园的时候 才发现 自己还有一个博客园的账号&#xff0c; GOD&#xff01; 4年了&#xff0c;猛然回首 自己又老了&#xff0c;这些年 不知道自己 搞了些什么东西&#xff0c;这日子过的真是 哎&#xff01;posted on 2012-01-11 17:25 RIBBIT…

.js——alert()语句

在.js文件中&#xff0c;通过alert()语句可以生成弹出框&#xff0c;弹出框中的内容message部分可以是常量字符串&#xff0c;也可以是含有变量的字符串连接&#xff0c;下面举几个例子简要说明下&#xff1a; 1. 参数为常量字符串 alert("warnningArray[1]:124"); 运…

Linux 编译安装Boost

http://blog.csdn.net/zgl_dm/article/details/8363843 linux平台下要编译安装除gcc和gcc-c之外&#xff0c;还需要两个开发库&#xff1a;bzip2-devel 和python-devel&#xff0c;因此在安装前应该先保证这两个库已经安装&#xff1a;#yum install gcc gcc-c bzip2 bzip2-deve…

如何利用System.Net.Mail类发送EMAIL

废话不多说&#xff0c;直接上代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Mail;namespace MailSender {class Program{static string strHost string.Empty;static string strAccount string.Empty;stat…

特殊的质数肋骨

特殊的质数肋骨 时间限制: 0 Sec 内存限制: 128 MB题目描述 农民约翰的母牛总是生产出最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质…

安装perl5.10.0

目的&#xff1a;本人使用的Linux系统CentOS5.8中最新的perl版本是5.8.8。学习perl语言入门&#xff0c;一般情况下够用&#xff0c;但是在使用given-when这种结构的时候&#xff0c;就必须指定5.10版本(use 5.0.10.0;)步骤&#xff1a;1. wget http://www.cpan.org/src/perl-5…

Linux下编译Jsoncpp

载软件包:jsoncpp-src-0.5.0.tar.gz scons-2.1.0.tar.gz # tar zxvf scons-2.1.0.tar.gz # tar zxvf jsoncpp-src-0.5.0.tar.gz 设定环境变量【关键】,绝对路径# export MYSCONS解压的路径 # export SCONS_LIB_DIR$MYSCONS/engine # cd jsoncpp-src-0.5.0 # python $MYSCONS…

逛公园

传送门 解法: 先不考虑0环 很容易想到dp 状态转移方程也很容易想到 设\(d[i]\)为n到i的最短路长度 当然此时是反向图 反向图是为了防止1能到达的点到达不了n而出错\(dp[i][j]\)表示到达i点距离为\(d[i]j\)的路径个数 则 x->y有路径 \(dp[x][k]dp[y][k-(d[y]edge(x,y)-d[x])]…