pro:给定三个整数L,R,P求[L,R]区间的整数有多少个是以P为最小因子的。L,R,P<2e9;

sol:

一: 比较快的做法是,用函数的思想递归。

用solve(N,P)表示求1到N有多少数字多少个的最小因子是P;

1,首先P是合数,或者N<P;solve=0;

2,否则,如果P*P>=N;solve=1;

3,solve=N/P-solve(N/P,i);     2<=i<P

由于P主要分布在sqrt(N),而且N每次log级别减小,所以收缩得很快。具体的复杂度我证明不来,但是感觉过程和min25筛差不多。 (62ms

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
bool check(int P)
{
for(int i=;i*i<=P;i++)
if(P%i==) return false;
return true;
}
int solve(int N,int P)
{
if(!check(P)||N<P) return ;
if(N/P<P) return ;
int res=N/P;
rep(i,,P-) res-=solve(N/P,i);
return res;
}
int main()
{
int A,B,P;
scanf("%d%d%d",&A,&B,&P);
printf("%d\n",solve(B,P)-solve(A-,P));
return ;
}

二:当时还不流行min25筛,否则这题大部分人都可以套板子了。我们知道min25的过程其实就是每次可以得到最小素因子为p的数的个数(或者之和),所以改一下板子即可(128ms

#include<bits/stdc++.h>
using namespace std;
#define ll int
const int maxn=;
ll Sqr,vis[maxn],pri[maxn],tot,m,id1[maxn],id2[maxn];
ll g[maxn],w[maxn]; //sp前i个素数之和。
void Sieve(int n)
{
tot=; vis[]=;
for(int i=;i<=n;i++){
if(!vis[i]) pri[++tot]=i;
for(int j=;pri[j]<=n/i;j++){
vis[i*pri[j]]=;
if(i%pri[j]==) break;
}
}
}
bool check(int P)
{
for(int i=;i*i<=P;i++)
if(P%i==) return false;
return true;
}
ll solve(ll n,ll K)
{
if(n<K) return ;
if(!check(K)) return ;
if(K>n/K) return ;
Sqr=sqrt(n); Sieve(Sqr); ll res=; m=;
for(ll i=,j;i<=n;i=j+){
j=n/(n/i); w[++m]=n/i;
if(w[m]<=Sqr) id1[w[m]]=m;
else id2[n/w[m]]=m;
g[m]=w[m]-; //1到n的素数个数,先设为n-1(1不考虑
}
for(int j=;j<=tot;j++){
for(int i=;i<=m&&pri[j]<=w[i]/pri[j];i++){
int k=(w[i]/pri[j]<=Sqr)?id1[w[i]/pri[j]]:id2[n/(w[i]/pri[j])];
g[i]=g[i]-(g[k]-(j-));
if(pri[j]==K&&i==) res+=g[k]-(j-); //K去筛,[1,N]时
}
}
return res+;//加上素数自己
}
int main()
{
int l,r,k;
scanf("%d%d%d",&l,&r,&k);
printf("%d\n",solve(r,k)-solve(l-,k));
return ;
}

CodeForces - 83D:Numbers (数学&递归 - min25筛 )的更多相关文章

  1. Min25 筛与 Powerful Numbers

    Min25 筛与 Powerful Numbers Min25 筛 大喊一声 Min25 NB!!! 这是一个非常神奇的东西,用于求更加普遍的积性函数的前缀和. 比如我们要求 \(\sum_{i=1} ...

  2. [总结] min-25筛

    再不写总结我又会忘掉啊啊啊啊啊啊啊啊啊 这个\(min-25\)筛主要用来求一个积性函数的前缀和,就像这样\[\sum_{i=1}^n f(i)\] 不过这个积性函数要满足两个条件:质数\(p\)的函 ...

  3. min25筛学习总结

    前言 杜教筛学了,顺便把min25筛也学了吧= =刚好多校也有一道题需要补. 下面推荐几篇博客,我之后写一点自己的理解就是了. 传送门1 传送门2 传送门3 这几篇写得都还是挺好的,接下来我就写下自己 ...

  4. min-25筛总结

    怕忘了赶快更一下.就是求积性函数前缀和的. 没有 \(\LaTeX\) 原理 现在你有一个积性函数 f(1)=1 FP(p) FPK(p,k) 首先要求的是前缀和,那就是f(质数)+f(合数)+f(1 ...

  5. Min25 筛学习笔记

    仅仅是 \(min25\) 筛最基本的方法,没有任何推式子的例题.(想了想还是加两道吧qwq) 这里解决的是 \(Luogu\) 那道模板题. min25 基本方法: 最基础的是两个式子: \[G(n ...

  6. LOJ# 572. 「LibreOJ Round #11」Misaka Network 与求和(min25筛,杜教筛,莫比乌斯反演)

    题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质 ...

  7. BZOJ-5244 最大真因数(min25筛)

    题意:一个数的真因数指不包括其本身的所有因数,给定L,R,求这个区间的所有数的最大真因数之和. 思路:min25筛可以求出所有最小因子为p的数的个数,有可以求出最小因子为p的所有数之和. 那么此题就是 ...

  8. loj#6235. 区间素数个数(min25筛)

    题意 题目链接 Sol min25筛的板子题,直接筛出\(g(N, \infty)\)即可 筛的时候有很多trick,比如只存\(\frac{N}{x}\)的值,第二维可以滚动数组滚动掉 #inclu ...

  9. 「学习笔记」Min25筛

    「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}​\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK ...

随机推荐

  1. Dede后台验证码不显示解决方法详解(dedecms 5.7 UTF-8版本)

    织梦(dede)后台验证码不显示有多种可能性,我前几天测试就碰到了这个问题,结果百度搜索了一圈,挨个修改了下,还是不行,最后是在解决另外一个后台上传图片不成功的问题的时候,歪打正着的把验证码问题给解决 ...

  2. js生成条形码——JsBarcode

    原文地址:https://www.cnblogs.com/huangenai/p/6347607.html 介绍一下在GitHub生成条形码的js插件→JsBarcode 条码支持的有: CODE12 ...

  3. qsort与sort

    快排是我们平常敲代码和比赛的时候     经常使用到的方法 qsort是函数库中自带的函数    这是一个标准的快排函数 而sort比qsort更是好用    sort对于不同大小的数组   会使用不 ...

  4. layui 自定义模块

    新建模块目录modules 新建common.js layui.define(['jquery'], function (exports) { var $ = layui.jquery; var ob ...

  5. 基于DigitalOcean+LAMP+WordPress搭建个人网站

    1. 注册DigitalOcean并新建主机 为了搭建个人网站首先需要一个可以在公网范围访问的主机,可以选用国内如阿里云.国外如DigitalOcean的各种云主机提供商,这里选用DigitalOce ...

  6. ajax中如何使用全局变量?

    在ajax中一般都是采取默认的异步请求,但是有时候参数是需要做到全局通用,这时候发起同步请求. 如下: $.ajax({ type:"post", url:"url路径& ...

  7. Vue框架(一)——Vue导读、Vue实例(挂载点el、数据data、过滤器filters)、Vue指令(文本指令v-text、事件指令v-on、属性指令v-bind、表单指令v-model)

    Vue导读 1.Vue框架 vue是可以独立完成前后端分离式web项目的js框架 三大主流框架之一:Angular.React.Vue vue:结合其他框架优点.轻量级.中文API.数据驱动.双向绑定 ...

  8. DS 红黑树详解

    通过上篇博客知道,二叉搜索树的局限在于不能完成自平衡,从而导致不能一直保持高性能. AVL树则定义了平衡因子绝对值不能大于1,使二叉搜索树达到了严格的高度平衡. 还有一种能自我调整的二叉搜索树, 红黑 ...

  9. Go grpc 与 protobuf

    现在很多微服务内部的通信协议都采用rpc,性能高,安全.而grpc则是google退出的rpc plus. protobuf是传输协议,性能高,强大. 来一个server client的通信demo, ...

  10. Html设置问题(设置浏览器上面的图标,移动设备上面页面保存为图标)

    最近开发了一个新的项目,项目完成之后:要求把页面在移动设备上面保存为图标,通过图标直接进入系统入口(这样看着就想APP一样):刚开始通过百度直接设置了,发现有两个问题,第一.图标直接是页面的截图:第二 ...