[CQOI2016]伪光滑数
题目描述
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
typedef long long ll;
int tot,prime[],K,f[][],g[][];
ll n;
bool vis[];
inline ll rd(){
ll x=;char c=getchar();bool f=;
while(!isdigit(c)){if(c=='-')f=;c=getchar();}
while(isdigit(c)){x=(x<<)+(x<<)+(c^);c=getchar();}
return f?-x:x;
}
struct node{
int i,j;ll val;
node(int ii=,int jj=,ll v=){i=ii;j=jj;val=v;}
inline bool operator <(const node &b)const{return val<b.val;}
};
priority_queue<node>q;
struct tree{
ll val,la;int l,r,d;
tree(ll xx=,ll yy=,int lx=,int rx=,int dd=){val=xx;la=yy;l=lx;r=rx;d=dd;}
}tr[];
inline int newnode(int x,ll y){
if(!x)return ;
int p=++tot;
tr[p]=tr[x];tr[p].val=tr[p].val*y;tr[p].la=tr[p].la*y;
return p;
}
inline void pushdown(int cnt){
if(tr[cnt].la!=){
tr[cnt].l=newnode(tr[cnt].l,tr[cnt].la);
tr[cnt].r=newnode(tr[cnt].r,tr[cnt].la);
tr[cnt].la=;
}
}
int merge(int x,int y){
if(!x||!y)return x|y;
if(tr[x].val<tr[y].val)swap(x,y);
pushdown(x);
int p=newnode(x,);
tr[p].r=merge(tr[p].r,y);
if(tr[tr[p].l].d<tr[tr[p].r].d)swap(tr[p].l,tr[p].r);
tr[p].d=tr[tr[p].r].d+;
return p;
}
inline void prework(){
int k;
for(int i=;i<=;++i){
if(!vis[i])prime[++prime[]]=i;
for(int j=;j<=prime[]&&(k=i*prime[j])<=;++j){
vis[i*prime[j]]=;
if(i%prime[j]==)break;
}
}
}
int main(){
cin>>n>>K;
prework();
f[][]=g[][]=tot=tr[].val=tr[].la=;
for(int i=;i<=prime[];++i){
f[i][]=g[i][]=;
for(ll pr=prime[i],j=;pr<=n&&pr>;++j,pr=pr*prime[i]){
f[i][j]=;
for(ll prm=prime[i],k=;k<=j;++k,prm=prm*prime[i]){
f[i][j]=merge(f[i][j],newnode(g[i-][j-k],prm));
}
g[i][j]=merge(g[i-][j],f[i][j]);
q.push(node(i,j,tr[f[i][j]].val));
}
}
ll ans=;
while(K--){
node x=q.top();q.pop();
ans=x.val;
pushdown(f[x.i][x.j]);
f[x.i][x.j]=merge(tr[f[x.i][x.j]].l,tr[f[x.i][x.j]].r);
q.push(node(x.i,x.j,tr[f[x.i][x.j]].val));
}
printf("%lld",ans);
return ;
}
[CQOI2016]伪光滑数的更多相关文章
- 【BZOJ4524】[Cqoi2016]伪光滑数 堆(模拟搜索)
[BZOJ4524][Cqoi2016]伪光滑数 Description 若一个大于1的整数M的质因数分解有k项,其最大的质因子为Ak,并且满足Ak^K<=N,Ak<128,我们就称整数M ...
- @bzoj - 4524@ [Cqoi2016]伪光滑数
目录 @description@ @solution@ @version - 1@ @version - 2@ @accepted code@ @version - 1@ @version - 2@ ...
- [bzoj4524] [loj#2047] [Cqoi2016] 伪光滑数
Description 若一个大于 \(1\) 的整数 \(M\) 的质因数分解有 \(k\) 项,其最大的质因子为 \(Ak\) ,并且满足 \(Ak^K \leq N\) , \(Ak<12 ...
- Bzoj 4524 [Cqoi2016]伪光滑数(堆)
题面 题解 先筛出$<128$的质数,很少,打个表即可 然后钦定一个质数最大,不断替换即可(丢进大根堆里面,然后取出一个,替换在丢进去即可) 具体来说,设一个四元组$[t,x,y,z]$表示当前 ...
- BZOJ4524 CQOI2016伪光滑数(堆)
对于每个质数求出其作为最大质因子时最多能有几个质因子,开始时将这些ak1~akmaxk扔进堆.考虑构造方案,使得每次取出最大值后,最大质因子.质因子数均与其相同且恰好比它小的数都在堆里.类似暴搜,对于 ...
- BZOJ4524 [Cqoi2016]伪光滑数
BZOJ上的题面很乱,这里有一个题面. 题解: 正解是可持久化可并堆+DP,可惜我不会... 但暴力也可过这道题. 先在不超过N的前提下,在大根堆里加入每个质数的J次方,1<=j, 然后就可以发 ...
- 【BZOJ-4524】伪光滑数 堆 + 贪心 (暴力) [可持久化可并堆 + DP]
4524: [Cqoi2016]伪光滑数 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 183 Solved: 82[Submit][Status] ...
- 2021.08.01 P4359 伪光滑数(二叉堆)
2021.08.01 P4359 伪光滑数(二叉堆) [P4359 CQOI2016]伪光滑数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 若一个大于 11 的整数 MM ...
- Loj 2047 伪光滑数
Loj 2047 伪光滑数 正解较复杂,但这道题其实可以通过暴力解决. 预处理出 \(128\) 内的所有质数,把 \(n\) 内的 \(prime[i]^j\) 丢进堆中,再尝试对每个数变形,除一个 ...
随机推荐
- 由于服务主机:DCOM服务进程占用过多CPU,导致系统卡死
最近在使用电脑的时候,总是出现电脑死机,而且鼠标也是经常卡在那里不动了,开始以为是鼠标的问题,还换了个鼠标(飙泪中),这还是一个血的教训啊!!!之后打开任务管理器发现CPU占用已经达到100%,而且一 ...
- 责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)
责任链模式(Chain of Responsibility Pattern) 职责链模式 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系 将这些对象连接成一条链,并沿着这 ...
- javascript 函数后面有多个小括号f( )( )( )...
有时我们看见js函数后面跟着多个小括号是什么意思?f( )( )( )... f()执行f函数,返回子函数 f()()执行子函数,返回孙函数 f()()()执行孙函数,返回重孙函数 ... ... 但 ...
- SAP MM 明明已经扩展供应商到采购组织下,采购订单里还是报错?
SAP MM 明明已经扩展供应商到采购组织下,采购订单里还是报错? 如下的PO 4400000069,处于HELD状态.ME22N试图保存它为一个正式的采购订单,报错说供应商没有在采购组织下维护, 使 ...
- 基于html5 plus + Mui 移动App开发(一)
使用Html5 plus + Mui 进行移动App开发,有一段时间了,这几日得空,做个资讯App分享给大家. 今天主要分享主页实现,首先看下效果: 此界面主要分为:标题.内容分类列表.搜索及设置按钮 ...
- poi控制简单的word
官方model网址:http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/e ...
- Android View的重绘过程之Layout
博客首页:http://www.cnblogs.com/kezhuang/p/ View绘制的三部曲,测量,布局,绘画现在我们分析布局部分测量部分在上篇文章中已经分析过了.不了解的可以去我的博客里找一 ...
- 高通平台如何避免误入FFBM模式
前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法.虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会严重影响用户体验.这 ...
- 【English】四、Y结尾名词变复数
一.辅音字母+y结尾的名词,将y改变为i,再加-es. 读音变化:加读[z]. 例: candy→candies; daisy→daisies; fairy→fairies; lady→ladies; ...
- DVWA 黑客攻防演练(十二) DOM型 XSS 攻击 DOM Based Cross Site Scripting
反射型攻击那篇提及到,如何是"数据是否保存在服务器端"来区分,DOM 型 XSS 攻击应该算是 反射型XSS 攻击. DOM 型攻击的特殊之处在于它是利用 JS 的 documen ...