hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317

题意:F(x) 表示x的不同质因子的个数结果是求L,R区间中最大的gcd( F(i) , F(j) ),i、j在L,R区间内。

思路:因为2<=L < R<=1000000,所以他们的质因子最多的个数也就7个,也就是说1<=F(x)<=7,因为要求最大的GCD,所以只要知道在L,R区间内每个F(x)的情况就可以知道结果。

代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <iostream>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 const int X=1000010;
 8 bool isPrime[X+1];
 9 int total;//计数
10 int prime[79000];
11 void getPrime()
12 {
13     total=0;
14     memset(isPrime,true,sizeof(isPrime));
15     memset(prime,0,sizeof(prime));
16     for(int i=2;i<=X;i++)
17     {
18         if(isPrime[i]) prime[total++]=i;
19         for(int j=0; j<total && i*prime[j]<=X; j++)
20         {
21             isPrime[i*prime[j]]=false;
22             if(i%prime[j]==0)
23                 break;
24         }
25     }
26 }
27 
28 int dp[X][9];
29 int num[X];
30 void getCot()
31 {
32     memset(num,0,sizeof(num));
33     for(int i=0;prime[i]<=1000000;i++)
34         for(int j=prime[i];j<=1000000;j+=prime[i])
35             num[j]++;
36 }
37 
38 void gao()
39 {
40     memset(dp,0,sizeof(dp));
41     dp[2][1]=1;
42     for(int i=3;i<=1000000;i++)
43     {
44         int ans=num[i];
45         for(int j=1;j<=7;j++)
46             dp[i][j]=dp[i-1][j];
47         dp[i][ans]++;
48     }
49 }
50 int main()
51 {
52     int T,l,r,aa[10],ma;
53     getPrime();
54     getCot();
55     gao();
56     scanf("%d",&T);
57     while(T--)
58     {
59         ma=1;
60         scanf("%d%d",&l,&r);
61         for(int i=1;i<=7;i++)
62         {
63             aa[i]=dp[r][i]-dp[l-1][i];
64             if(aa[i]>=2&&i>ma)
65                 ma=i;
66         }
67         if(aa[6]>0&&aa[3]>0)
68             ma=max(ma,3);
69         else if(aa[6]>0&&aa[2]>0||aa[4]>0&&aa[2]>0)
70             ma=max(ma,2);
71         printf("%d\n",ma);
72     }
73     return 0;
74 }
View Code

 

转载于:https://www.cnblogs.com/yjx-xx/p/4690556.html

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

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

相关文章

MATLAB 中RMSE和MAPE的计算方法

RMSE&#xff1a;均方根误差 matlab计算方法&#xff1a; rmse sqrt(mean((YPred-Obverval).^2)); MAPE&#xff1a;平均百分比误差 matlab计算方法&#xff1a; meap mean(abs((observed - predicted)./observed))*100;

shell 基本知识

shell--脚本基础知识 ****shell 脚本基础知识**** 一、基本脚本编译 知识内容&#xff1a; # 构建脚本 # 将命令串联起来 # 存储变量 # 数学计算 # 重定向输出 # 检查代码shell不像高级语言需要编译后执行&#xff0c;而是直接处理每一条命令&#xff0c;可以将多条命令连接起来…

让LwIP拥有PING其他设备的能力

LwIP是个很不错的协议栈&#xff0c;但是由于其体积过于小巧&#xff0c;使其只能支持ICMP的ECHO类型。 因为在“icmp.c”中的“void icmp_input(struct pbuf *p, struct netif *inp)”函数里有个很长的switch case语句&#xff08;大约80行的位置&#xff09;。 而这个语句只…

H.264详解

From: http://netliuwei.blog.163.com/blog/static/93642191201111721931583/ H.264 H.264&#xff0c;同时也是MPEG-4第十部分&#xff0c;是由ITU-T视频编码专家组&#xff08;VCEG&#xff09;和ISO/IEC动态图像专家组&#xff08;MPEG&#xff09;联合组成的联合视频组&…

VSCode中配置prettier和ESLint

文章目录 了解ESLint和Prettier的作用prettier配置ESLint配置常见问答ESLint 和Prettier 有什么区别&#xff1f;为什么我应该同时使用ESLint 和Prettier&#xff1f;在使用ESLint 和Prettier 时&#xff0c;有可能出现它们之间的规则冲突吗&#xff1f;我已经在项目中使用了ES…

Lwip使用经验

LWIP使用经验 一 LWIP内存管理 数据包管理 设置内存大小 宏编译开关 二 LWIP启动时序 三 LWIP运行逻辑 接收数据包 SequentialAPI函数调用 四 TCPIP核心知识点 滑动窗口 三次握手 断开连接 TCP状态转换 同时打开 同时关闭 五正确使用LWIP 六 LWIP常见问题 网卡驱动程序 内存…

Keil5 编译生成bin二进制文件的设置方法

勾选&#xff1a;After Build/Rebuild Run #1 代码&#xff1a;fromelf --bin .\output\node.axf --output .\output\NoiseApp.bin 解释&#xff1a; .\ 指当前工程文件.uvprojx所在的目录.\output\node.axf 表示给定axf所在的位置.\output\NoiseApp.bin 表示bin文件输出的…

在word中插入代码段的方法[转]

废话不多说&#xff0c;下面说明实现步骤 步骤一 1.打开这个代码高亮工具网站&#xff1a;http://www.planetb.ca/syntax-highlight-word 2.在代码框中粘贴代码&#xff0c;选择语言&#xff0c;点击Show Highlighted 3.复制生成的代码段 步骤二 4.在 Microsoft Word…

开源好用的思维导图软件XMind

作为一款免费开源的思维导图制作编辑软件&#xff0c;灵活的运用思维导图会让你在学习和工作上帮助甚大。 接下来我们除了介绍思维导图之外&#xff0c;还给大家介绍一款免费的思维导图制作软件 XMind&#xff0c;它能支持 Windows、Mac、Linux 主流操作系统&#xff0c;而且还…

STM32到GD32移植攻略

1、 系统 1) 晶振起振区别 描述&#xff1a;启动时间&#xff0c;GD32 与STM32 启动时间都是2ms&#xff0c;实际上GD 的执行效率快&#xff0c;所以ST 的HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)是2ms&#xff0c;但是这个宏定义值在GD 上时间就更加短了&#xff0c;所以要加大…

Emmet:HTML/CSS代码快速编写神器

本文来源&#xff1a;http://www.iteye.com/news/27580 &#xff0c;还可参考&#xff1a;http://www.w3cplus.com/tools/emmet-cheat-sheet.htmlEmmet的前身是大名鼎鼎的Zen coding&#xff0c;如果你从事Web前端开发的话&#xff0c;对该插件一定不会陌生。它使用仿CSS选择…

HardFault_Handler问题查找方法

STM32出现HardFault_Handler故障的原因主要有两个方面&#xff1a; 1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码&#xff0c;遇到了需要慢慢排查。 2、堆栈溢出。增加堆栈的大小。 出现问题时排查的方法&#xff1a; 发生异常之后可首先查看LR寄存器中的值&…

《深入理解Linux内核》笔记5:内存管理

本文介绍内核如何给自己分配物理内存并管理。对应《深入》第8章。 在《深入》第2章“内存寻址”&#xff08;或者是我博客中的这篇文章&#xff0c;点这里&#xff09;中&#xff0c;已经介绍了内核如何给自己分配1G的线性地址的。但是物理内存的分配及管理恐怕更复杂而且更有必…

Objective-C设计模式——单例Singleton(对象创建)

单例 和其它语言的单例产不多&#xff0c;可以说是最简单的一种设计模式了。但是有几个点需要注意下&#xff0c;单例就是一个类只有一个实例。 所以我们要想办法阻止该类产生别的实例&#xff0c;一般语言中都会将构造函数写为private。但是OC中的函数并没有限定符&#xff0c…

基于SSM在线协同过滤汽车推荐销售系统

SSM毕设分享 基于SSM在线协同过滤汽车推荐销售系统 1 项目简介 Hi&#xff0c;各位同学好&#xff0c;这里是郑师兄&#xff01; 今天向大家分享一个毕业设计项目作品【】 师兄根据实现的难度和等级对项目进行评分(最低0分&#xff0c;满分5分) 难度系数&#xff1a;3分 工作…

Keil中的Code,RO,RW,ZI分别表示什么?

在使用keil开发STM32应用程序时&#xff0c;点击Build后在Build Output窗口中经常会有如下信息&#xff1a;以前一直好奇这几个参数和实际使用的STM32芯片中Flash和SRAM的对应关系&#xff0c;于是上网搜了一圈&#xff0c;做如下总结&#xff1a;这些参数的单位是Byte图中几个…

JTAG、SWD接口定义

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明。 博客已转到 http://blog.csdn.net/upc_xbt https://blog.csdn.net/u014124220/article/details/50829713Jlink仿真器接口仿真器端口连接目标板备注1. VCCMCU电源VCCVCC2. VCCMCU电源VCCVCC3. TRSTTRSTTest ReS…

Drainage Ditches - poj 1273(网络流模板)

题意&#xff1a;1是源点&#xff0c;m是汇点&#xff0c;求出来最大流量&#xff0c;没什么好说的就是练习最大流的模板题 ************************************************************** 先用Edmonds-Karp的算法做一下试试吧重边贡献了 1W&#xff0c;要加上所有的重边才算…

linux RTC 驱动模型分析

linux RTC 驱动模型分析RTC(real time clock)实时时钟&#xff0c;主要作用是给Linux系统提供时间。RTC因为是电池供电的&#xff0c;所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间与日期维护器。当Linux内核启动时&#xff0c;它从RTC中读取时间与日期&#xff0c;…

Install Docker Mac OS X

检查 Mac OS version 要求必须是 OS X 10.6 Snow Leopard or newer to run Boot2Docker安装 Boot2Docker 列表内容下载地址&#xff1a;https://github.com/boot2docker/osx-installer/releases/download/v1.7.0/Boot2Docker-1.7.0.pkg 下载后点击安装&#xff0c;就是按照提示…