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,一经查实,立即删除!

相关文章

[react] 举例说明React的插槽有哪些运用场景

[react] 举例说明React的插槽有哪些运用场景 我觉得这里的插槽&#xff0c;指的应该是组合组件&#xff0c;而不是portal(传送门)&#xff0c;因为对比vue中的插槽&#xff0c;只是父组件在子组件中间加入一系列的内容&#xff0c;然后子组件可以自己判断显示逻辑&#xff0c;…

C#中的事件和委托(续)

引言 如果你看过了 C#中的委托和事件 一文&#xff0c;我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容&#xff0c;还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题&#xff0c;包括一些大家常问到的问题&#xff0c;以及事件访…

linux中追踪函数backtrace调用堆栈

From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2388.html 一般察看函数运行时堆栈的方法是使用GDB之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。 在头文件"exe…

MATLAB 中RMSE和MAPE的计算方法

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

Linux SPI总线和设备驱动架构

http://blog.csdn.net/droidphone/article/details/24353293

[react] React15和16别支持IE几以上?

[react] React15和16别支持IE几以上&#xff1f; React15 版本不直接支持IE8 浏览器的&#xff0c;官方文档中说React16 中依赖于集合类型Map 和 Set 因此不再支持IE 11 以下的浏览器&#xff0c;如果想要支持&#xff0c;需要使用全局的 polyfill 个人简介 我是歌谣&#x…

ubuntu11.04正式版下载地址

ubuntu11.04正式版下载地址&#xff1a; 下載點列表&#xff1a; http://ftp.cs.pu.edu.tw/Linux/Ubuntu/ubuntu-cd/11.04/ubuntu-11.04-desktop-amd64.iso http://ftp.cse.yzu.edu.tw/pub/Linux/Ubuntu/ubuntu-cd/11.04/ubuntu-11.04-desktop-amd64.iso http://ftp.cs.pu.edu.…

hdu 3074 线段树 OR 树状数组

比较基础的线段树&#xff0c;1A。 线段树&#xff1a; 1 #include <iostream>2 #include <cstring>3 #include <cstdio>4 using namespace std;5 6 typedef long long ll;7 const int N 50001;8 const int MOD 1000000007;9 int a[N];10 11 struct Node12…

掌握shell编程中数组的常见用法及示例

From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子&#xff0c;希望能给大家一点帮助。其实SHELL的数组很简单&#xff0c;好用。我们学习都应该遵循简单、易用的原则。 shell编程中数组的简单用法及示例 新版本的B…

QT tr与Qstring的差别

在论坛中漂&#xff0c;经常遇到有人遇到tr相关的问题。用tr的有两类人&#xff1a; (1)因为发现中文老出问题&#xff0c;然后搜索&#xff0c;发现很多人用tr&#xff0c;于是他也开始用tr(2)另一类人&#xff0c;确实是出于国际化的需要&#xff0c;将需要在界面上显示的文…

printf的扩展

#define printf(format , ...) printf("FILE[%s] LINE[%d]" format , __FILE__ , __LINE__ , ##__VA_ARGS__)这个宏应用好几个技巧&#xff1a;1、使用printf宏&#xff0c;和原来的printf相同。这样我们不需要修改源码&#xff0c;直接替换原来的printf的函数。2、…

[react] contextType是什么?它有什么用?

[react] contextType是什么&#xff1f;它有什么用&#xff1f; 定义当前组件要使用哪一个context const MyContext React.createContext(defaultValue);class MyClass extends React.Component {componentDidMount() {let value this.context;/* perform a side-effect at…

shell 基本知识

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

Lombok(1.14.8) - @Log

Log Logs&#xff0c;生成一个日志对象。 package com.huey.lombok;import lombok.extern.java.Log;Log public class LogExample {public static void main(String[] args) {log.info("This is an info message."); }} 除了&#xff0c;Log还有其他annotatio…

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

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

[react] 在React怎么使用Context?

[react] 在React怎么使用Context&#xff1f; context : Context提供了一种方式&#xff0c;能够让数据在组件树中传递&#xff0c;而不必一级一级手动传递。 API : createContext(defaultValue?)。 使用方法&#xff1a; 首先要引入createContext import React, { Component…

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;联合组成的联合视频组&…

使用UDP

基本UDP客户端 #!/usr/bin/env python # UDP Example - Chapter 2 import socket, sys, time host sys.argv[1] textport sys.argv[2] s socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: port int(textport) except ValueError: # That didnt work. Look it up in…

QT中的MessageBox设置自动关闭退出

一、概述 由于弹出的MessageBox需要手动操作&#xff0c;点击相关操作程序才会进一步执行&#xff0c;所以有时程序使用了MessageBox会阻塞相关功能代码执行。例如&#xff0c;在串口编程中&#xff0c;接收到数据或某项配置成功后弹出一个MessageBox&#xff0c;由于没有及时…

(剑指Offer)面试题54:表示数值的字符串

题目&#xff1a; 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。例如&#xff0c;字符串"100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14"…