博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces #304D 546D. Soldier and Number Game(数论+动态规划+前缀和)
阅读量:3713 次
发布时间:2019-05-21

本文共 971 字,大约阅读时间需要 3 分钟。

题目链接:

题目大意:

给出两个数,问a!/b!的每次除以一个数,最多除多少次

题目分析:

dp[i]是对于i能够除的最大次数(质因数的总个数,包括重复的质因数),那么dp[i] = dp[i/p]+1

然后递推一下,作为预处理

然后预处理出前缀和,利用前缀和求出b+1~a所有数的质因子的总数

代码如下:

#include 
#include
#include
#include
#define MAX 5000007using namespace std;typedef long long LL;int t,a,b;int maxPrime[MAX];int num[MAX];LL sum[MAX];void init ( ){ memset ( maxPrime , -1 , sizeof ( maxPrime ) ); for ( int i = 2 ; i < MAX ; i++ ) { if ( ~maxPrime[i] ) continue; for ( int j = 1 , t =i ; t < MAX ; j++ , t += i ) maxPrime[t] = i; } num[1] = 0; for ( int i = 2 ; i < MAX ; i++ ) if ( maxPrime[i] != -1 ) num[i] = num[i/maxPrime[i]] + 1; sum[0] = 0; sum[1] = num[1]; for ( int i = 2 ; i < MAX ; i++ ) sum[i] = sum[i-1] + num[i];}int main ( ){ scanf ( "%d" , &t ); init(); while ( t-- ) { scanf ( "%d%d" , &a , &b ); printf ( "%I64d\n" , sum[a] - sum[b] ); }}

转载地址:http://ppvjn.baihongyu.com/

你可能感兴趣的文章
SpringCloud & SpringCloud Alibaba 整合
查看>>
SpringBoot 的.yml配置文件通用模板
查看>>
Spring Cloud Alibaba Nacos配置中心 集群与负载均衡配置
查看>>
IDEA 2021 开发 springboot springcloud springcloud Alibaba应用时application.yml配置自动提示
查看>>
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
查看>>
Windows 10 21H1开启&关闭卓越模式
查看>>
MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)
查看>>
2021 最新 IntelliJ IDEA配置 远程Docker容器 编写Dockerfile文件 步骤演示(图文版)
查看>>
2021年 最新 多阶段构建dockerfile实现java源码编译打jar包并做成镜像
查看>>
Vue 入门 指令
查看>>
数据结构 线性表(一) 字符串插入
查看>>
数据结构 线性表(二) 多项式加法
查看>>
数据结构 线性表(三) 放苹果
查看>>
数据结构 栈与队列(一) 括号匹配
查看>>
合同法律风险管理 合同的意义
查看>>
数据结构 栈与队列(二) 栈的基本操作
查看>>
合同法律风险管理 合同的精神
查看>>
数据结构 栈与队列(三) 抓住那头牛
查看>>
数据结构 字符串(一) 全在其中
查看>>
合同法律风险管理 合同理念(一)对象与文本并重
查看>>