洛谷

CF83D


分析

题意就是\(\sum_{i=l}^r[k|i]*[mn[\frac{i}{k}]\geq k]\)

首先线性筛每个数的最小质因数,如果\(\frac{r}{k}\)较小直接暴力

否则\(k\)一定比较小,那么直接容斥解决即可


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
#define rr register
using namespace std;
const int N=5000000;
int prime[N+101],v[N+101],cnt,Tot,ans,nn;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void pro(){
for (rr int i=2;i<=N;++i){
if (!v[i]) v[i]=prime[++cnt]=i;
for (rr int j=1;j<=cnt&&prime[j]<=N/i;++j){
v[i*prime[j]]=prime[j];
if (i%prime[j]==0) break;
}
}
}
inline bool Is_Prime(int k){
if (k<=N) return v[k]==k;
for (rr int i=1;i<=cnt;++i){
if (prime[i]>k/prime[i]) break;
if (k%prime[i]==0) return 0;
}
return 1;
}
inline signed brute(int n,int k){
ans=1;
for (rr int i=2;i<=n;++i) ans+=v[i]>=k;
return ans;
}
inline void dfs(int dep,int now,int op){
if (dep>Tot){
ans+=op*(nn/now);
return;
}
dfs(dep+1,now,op);
if (now<=nn/prime[dep])
dfs(dep+1,now*prime[dep],-op);
}
inline signed Pro_DFS(int n,int k){
Tot=lower_bound(prime+1,prime+1+cnt,k)-prime-1,
ans=0,nn=n,dfs(1,1,1); return ans;
}
inline signed answ(int n,int k){
if (n<k||!Is_Prime(k)) return 0;
if (n/k<=N) return brute(n/k,k);
else return Pro_DFS(n/k,k);
}
signed main(){
rr int l=iut(),r=iut(),k=iut(); pro();
return !printf("%d",answ(r,k)-answ(l-1,k));
}

#容斥,搜索,线性筛#CF83D Numbers的更多相关文章

  1. [BZOJ1853][Scoi2010]幸运数字 容斥+搜索剪枝

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 3202  Solved: 1198[Submit][Status ...

  2. bzoj 1853 容斥 + 搜索

    思路:先把所有幸运数字找出来, 把没有用的去掉,然后爆搜容斥,因为最多只会搜十几个就超过限制了, 所以是可行的. #include<bits/stdc++.h> #define LL lo ...

  3. 2019.01.17 bzoj1853: [Scoi2010]幸运数字(容斥+dfs)

    传送门 搜索菜题,然而第一次没有注意然后爆longlonglong longlonglong了. 题意:称所有数位由6,86,86,8组成的数为幸运数字,问一个一个区间[l,r][l,r][l,r]中 ...

  4. 洛谷$P4318$ 完全平方数 容斥+二分

    正解:容斥/杜教筛+二分 解题报告: 传送门$QwQ$ 首先一看这数据范围显然是考虑二分这个数然后$check$就计算小于等于它的不是讨厌数的个数嘛. 于是考虑怎么算讨厌数的个数? 看到这个讨厌数说, ...

  5. BZOJ4671 异或图(容斥+线性基)

    题意 定义两个结点数相同的图 \(G_1\) 与图 \(G_2\) 的异或为一个新的图 \(G\) ,其中如果 \((u, v)\) 在 \(G_1\) 与 \(G_2\) 中的出现次数之和为 \(1 ...

  6. 【LOJ#6072】苹果树(矩阵树定理,折半搜索,容斥)

    [LOJ#6072]苹果树(矩阵树定理,折半搜索,容斥) 题面 LOJ 题解 emmmm,这题似乎猫讲过一次... 显然先\(meet-in-the-middle\)搜索一下对于每个有用的苹果数量,满 ...

  7. BZOJ 4671 异或图 | 线性基 容斥 DFS

    题面 Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中 ...

  8. 【BZOJ1853】幸运数字(搜索,容斥)

    [BZOJ1853]幸运数字(搜索,容斥) 题面 BZOJ 洛谷 题解 成功轰下洛谷rk1,甚至超越了一个打表选手 这题思路很明显吧,先搞出来所有范围内的合法数字,然后直接容斥, 容斥的话显然没有别的 ...

  9. bzoj 4671 异或图——容斥+斯特林反演+线性基

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4671 考虑计算不是连通图的方案,乘上容斥系数来进行容斥. 可以枚举子集划分(复杂度是O(Be ...

  10. bzoj 4671 异或图 —— 容斥+斯特林反演+线性基

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4671 首先,考虑容斥,就是设 \( t[i] \) 表示至少有 \( i \) 个连通块的方 ...

随机推荐

  1. FastAPI中全局异常处理

    装饰器版本自定义异常 1.首先我们定义三个文件,分别为exception.py,main.py, user.py 2.自定义异常需要继承HTTPException,该异常可以从fastapi中直接导入 ...

  2. django学习第六天---shell指令,单表基于双下划线的模糊查询,distinct注意点,字段的choices属性,url反向解析,orm多表操作创建表

    shell指令 命令 python manage.py shell 在Terminal,执行上面这个指令会进入到python解释器环境中,并且加载了我们当前django项目配置环境,所以可以在当前sh ...

  3. 【LeetCode栈与队列#04】逆波兰表达式求值(仍然是经典的栈操作)

    逆波兰表达式求值 力扣题目链接(opens new window) 根据 逆波兰表示法,求表达式的值. 有效的运算符包括 + , - , * , / .每个运算对象可以是整数,也可以是另一个逆波兰表达 ...

  4. 第一百零四篇:DOM事件流

    好家伙,JS基础接着学,   1.事件流 页面哪个部分拥有特定的事件? 可以把页面想象成一个同心圆, 当你戳了其中的一点,其实你同时戳中了很多个圆   当你点击一个页面中的按钮,实际上你同时点击了这个 ...

  5. 【Azure Developer】CURL 发送Oauth2 Token请求获取到 404 Not Found 问题

    问题描述 当使用 Postman 向AAD 发送如下请求时候,得到了404 Not Found的错误. "curl --location --request POST 'https://lo ...

  6. C++ STL 容器-string类型

    C++ STL 第一部分-容器 STL的介绍 C++的STL分为六大部分 容器分为 容器的概念 容器内元素的条件 1.必须可以复制copy或者搬移move,包括条件是在拷贝和搬移的过程中不存在副作用. ...

  7. Java 继承成员变量和继承方法的区别

    1 package com.bytezreo.duotai3; 2 3 /** 4 * 5 * @Description 继承成员变量和继承方法的区别 6 * @author Bytezero·zhe ...

  8. 多线程系列(十八) -AQS原理浅析

    一.摘要 在之前的文章中,我们介绍了 ReentrantLock.ReadWriteLock.CountDownLatch.CyclicBarrier.Semaphore.ThreadPoolExec ...

  9. npm install --legacy-peer-deps 安装出现依赖包冲突的解决方案

    npm install --legacy-peer-deps 安装出现依赖包冲突的解决方案 为什么 在安装依赖包的时候,会有依赖包的冲突 比如A包引用了C的1.0版本 B包依赖了C的1.1版本 win ...

  10. C++实现一个线程安全的map

    本文是使用ChatCPT生成的,最终的代码使用起来没问题.代码是通过两轮对话完善的,后面把对话合并后跑不出理想效果就没尝试了. 第一轮对话 请求 c++11实现一个线程安全的map,使用方法与std: ...