正解:二分+搜索

解题报告:

传送门$QwQ$

因为翻译真的很$umm$所以还是写下题目大意$QwQ$,就说给定一个大小为$n$的素数集合,求出分解后只含这些质数因子的第$K$小整数

考虑先把质数分两堆,$meet-in-the-middle$搜出每堆能表示的数.

然后二分答案,扫左边的数看右边有多少个数满足相乘小于等于这个$mid$的,将数量全加起来和$K$比较就成.然后这个查看右边的操作,可以直接一个指针扫下,就不用二分做了$QwQ$.

出于一些不知道原因的玄学原因,在$meet-in-the-middle$的时候最好是两个两个跳着搜,,,直接简单粗暴对半搜会$T$我也不知道啥原理$kk$.

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ll long long
#define t(i) edge[i].to
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define e(i,x) for(ri i=head[x];i;i=edge[i].nxt) const int N=+;
const ll mx=1e18;
int n,p[N];
ll K;
vector<ll>V[]; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
void dfs(ll dat,ri nw,ri num)
{
if(nw>n){V[num].push_back(dat);return;}
dfs(dat,nw+,num);while(dat<=mx/p[nw])dfs(dat*p[nw],nw+,num),dat=1ll*dat*p[nw];
}
il bool check(ll dat)
{
ri sz=V[].size(),nw=V[].size()-,ret=;
rp(i,,sz-){if(V[][i]>dat || !(~nw))break;while(~nw && V[][nw]>dat/V[][i])--nw;ret+=nw+;}
return ret>=K;
} int main()
{
freopen("912e.in","r",stdin);freopen("912e.out","w",stdout);
n=read();rp(i,,n)p[i]=read();K=read();dfs(,,);dfs(,,);
sort(V[].begin(),V[].end());sort(V[].begin(),V[].end());
ll l=,r=mx;while(l<r){ll mid=(l+r)>>;if(check(mid))r=mid;else l=mid+;}
printf("%lld\n",l);
return ;
}

随机推荐

  1. 快速完成智能数据构建,Dataphin公共云版本全面解读

    公测两个月,Dataphin公共云版本已经受到了阿里云上众多轻量级用户的关注.事实上,Dataphin作为一款大数据智能构建与管理的产品,其核心功能是面向各行各业大数据建设.管理及应用诉求,一站式提供 ...

  2. Node.js MVC模式+MongoDB实现学员管理系统

    目录结构: 项目入口文件 /* Author:张波 */ /* 文件说明: 此文件是本项目的入口文件 启动这个项目,会先执行本文件中的代码 */ // 1. 引入模块 const http = req ...

  3. 微信小程序之购物车demo

    这篇小demo主要使用了一下几个技术点 1.全局变量的使用 在这里定义的变量 任何一个页面和组件都可以访问到 在使用到的页面 const app = getApp(); 声明一个实例 然后 app.g ...

  4. 2018-11-19-Roslyn-NameSyntax-的-ToString-和-ToFullString-的区别

    title author date CreateTime categories Roslyn NameSyntax 的 ToString 和 ToFullString 的区别 lindexi 2018 ...

  5. angular ui 路由传参

    1. ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: $state.go('someState')一般使用在 controlle ...

  6. 通过PdfiumViewer.dll实现pdf直接从流显示(效果不好)

    开源的PdfiumViewer.dll并不完整 需要不开源的pdfium.dll配合使用 引用只需添加PdfiumViewer.dll,但pdfium.dll必须跟它放在一个路径下 界面中添加控件: ...

  7. JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法

    问题: JPA 在双向映射时,会相互包含对方的实例,相互引用,造成递归迭代,堆栈溢出(java.lang.StackOverflowError). 分析: 在后端向前端传递的时候会将数据序列化,转为j ...

  8. httpclient: Content-Length header already present问题

    现象:用httpclient发送http请求时,客户端返回: org.apache.http.client.ClientProtocolException at org.apache.http.imp ...

  9. Python--day36--操作系统的作用;多道技术;

  10. HDU 1542"Atlantis"(线段树+扫描线求矩形面积并)

    传送门 •题意 给你 n 矩形,每个矩形给出你 $(x_1,y_1),(x_2,y_2)$ 分别表示这个矩形的左下角和右上角坐标: 让你求这 n 个矩形并的面积: 其中 $x \leq 10^{5} ...