Smooth
考场\(AC\),还是很开心的。
考虑这题让你干啥,就是给你一堆素数,然后让你用他们去构造数,求其中第\(k\)小的。
我们可以用系数累乘的方式,同时利用小根堆实现有序,加一个优化,就过了。
首先将所有已有的素数丢进堆,然后每次取堆顶,取出来后扫描给出的素数,将它与这些素数的积丢进堆,重复过程直到有\(k\)个数已被取出过。
有一个优化,就是参考了欧拉筛的思路,当当前的堆顶%当前枚举到的素数为0是就跳出,可以保证每个数只被构造一次。
考场上被\(STL\)的堆卡常了,只有90分,靠。
代码:
Code
//2000ms
//512MB
#include<bits/stdc++.h>
using namespace std;
namespace STD
{
#define rr register
typedef long long ll;
const int K=1e7+4;
const ll N=1e18+2;
int k,b,cnt;
int prime[30];
ll line[K];
bool is_not_prime[105];
ll read()
{
rr ll x_read=0,y_read=1;
rr char c_read=getchar();
while(c_read<'0'||c_read>'9')
{
if(c_read=='-') y_read=-1;
c_read=getchar();
}
while(c_read>='0'&&c_read<='9')
{
x_read=(x_read<<3)+(x_read<<1)+(c_read^48);
c_read=getchar();
}
return x_read*y_read;
}
void pre()
{
for(rr int i=2;i<=100;i++)
{
if(!is_not_prime[i]) prime[++cnt]=i;
for(rr int j=1;j<=cnt&&prime[j]*i<=100;j++)
{
is_not_prime[i*prime[j]]=1;
if(!(i%prime[j])) break;
}
}
}
class Heap
{
private:
int tot;
ll heap[K<<1];
void up(int);void down(int);
void swap(ll &x,ll &y){x^=y,y^=x,x^=y;}
public:
Heap(){tot=0;}
void push(ll val){heap[++tot]=val;up(tot);}
void pop(){heap[1]=heap[tot--];down(1);}
inline ll top(){return heap[1];}
}heap;
void Heap::up(int p)
{
while(p>1)
{
if(heap[p]<heap[p>>1])
{
swap(heap[p],heap[p>>1]);
p>>=1;
}
else break;
}
}
void Heap::down(int p)
{
int s=p<<1;
while(s<=tot)
{
if(s<tot&&heap[s]>heap[s+1]) s++;
if(heap[s]<heap[p])
{
swap(heap[s],heap[p]);
p=s,s=p<<1;
}
else break;
}
}
};
using namespace STD;
int main()
{
//priority_queue<ll,vector<ll>,greater<ll> > heap;
pre();
b=read(),k=read();
for(rr int i=1;i<=b;i++) heap.push(prime[i]);
while(1)
{
rr ll x=heap.top();
heap.pop();
line[++line[0]]=x;
if(line[0]==k-1) break;
for(rr int i=1;i<=b;i++)
{
heap.push(x*prime[i]);
if(x%prime[i]==0) break;
}
}
printf("%lld\n",line[line[0]]);
}
Smooth的更多相关文章
- OpenCV学习笔记——多种Smooth平滑处理
opencv库提供了好几种模糊平滑Smooth操作的类型作为cvSmooth的参数传入,从而达到不同的平滑效果,另外复习了一下如何复制一份图像和重新调整图像大小. 调整图像大小目前是按照一下步骤进行: ...
- het smooth 组装高杂合度二倍体基因组前期数据处理
http://sourceforge.net/projects/het-smooth/ equencing technologies, such as Illumina sequencing, pro ...
- Perfect smooth scrolling in UITableViews
https://medium.com/ios-os-x-development/perfect-smooth-scrolling-in-uitableviews-fd609d5275a5 Diffic ...
- 使用IIS 7.0 Smooth Streaming 优化视频服务
http://www.cnblogs.com/dudu/archive/2013/06/08/iis_webserver_settings.html (支持高并发的IIS Web服务器常用设置) ht ...
- 绘制更Smooth的UI
以前很长一段时间,在自定义控制绘制时,只是简单的定义一个QPainter对象而开始绘画.经常会画一些圆角矩形,甚至是一些不规则的图形.对于不规则的图形来说,如果PS技术不好,或者mask制作的不好,常 ...
- 目标检测——Faster R_CNN使用smooth L1作为bbox的回归损失函数原因
前情提要—— 网上关于目标检测框架——faster r_cnn有太多太好的博文,这是我在组会讲述faster r_cnn这一框架时被人问到的一个点,当时没答上来,于是会下好好百度和搜索一下研究了一下这 ...
- oddjob之smooth关闭程序
java程序的smooth关闭策略可以采用hook跟观察者的模式实现 无限等状态,如果状态出现可以关闭的事件则进行关闭 虚拟机的关闭通过钩子调用关闭,如果关闭失败,在超时时间内强制杀掉jvm 状态类 ...
- L1 loss, L2 loss以及Smooth L1 Loss的对比
总结对比下\(L_1\) 损失函数,\(L_2\) 损失函数以及\(\text{Smooth} L_1\) 损失函数的优缺点. 均方误差MSE (\(L_2\) Loss) 均方误差(Mean Squ ...
- label smooth
图像分类的一个trick,推导可参考这位博主https://leimao.github.io/blog/Label-Smoothing/ 知乎上的讨论https://www.zhihu.com/que ...
- smooth L1损失函数
当预测值与目标值相差很大时,L2 Loss的梯度为(x-t),容易产生梯度爆炸,L1 Loss的梯度为常数,通过使用Smooth L1 Loss,在预测值与目标值相差较大时,由L2 Loss转为L1 ...
随机推荐
- 为什么说使用 Linux 系统学习 OpenGL 更方便
前言 上一篇随笔介绍了我的电脑,同时也介绍了 Ubuntu 20.10 系统的安装和美化.这一篇,我将正式开始 OpenGL 之旅.使用 Ubuntu 来进行开发,不仅仅只是因为我对 Linux 桌面 ...
- 【Android面试查漏补缺】之事件分发机制详解
前言 查漏补缺,查漏补缺,你不知道哪里漏了,怎么补缺呢?本文属于[Android面试查漏补缺]系列文章第一篇,持续更新中,感兴趣的朋友可以[关注+收藏]哦~ 本系列文章是对自己的前段时间面试经历的总结 ...
- 我,35岁Android开发,高龄入职鹅厂,试用期未过被劝退......今年实惨
今天,笔者盘点.综合分享一位腾讯员工的"心声".这份心声中干货还是不少的,主要关于腾讯的一些职场生活--希望这些"干货"能对你有所帮助. 什么部门?给补偿吗? ...
- 寻找写代码感觉(一)之使用 Spring Boot 快速搭建项目
写在前面 现在已经是八月份了,我已经荒废了半年居多,不得不说谈恋爱确实是个麻烦的事,谈好了皆大欢喜,分手了就是萎靡不振,需要很长一段时间才能缓过来. 人还是要有梦想的,至于实现只不过是一个契机,但凡不 ...
- 【笔记】初探KNN算法(3)
KNN算法(3) 测试算法的目的就是为了帮助我们选择一个更好的模型 训练数据集,测试数据集方面 一般来说,我们训练得到的模型直接在真实的环境中使用 这就导致了一些问题 如果模型很差,未经改进就应用在现 ...
- 最详细之教你Jenkins+github自动化部署.Net Core程序到Docker
环境 centos7.9,.NET5 一.Jenkins搭建 1)下载Jenkins的war包 在\home目录建一个jenkins目录放jenkins的包 #进入\home目录 cd \home # ...
- 快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)
一.上模块 二.功能分析 l 芯片:CH340N l 输入接口:USB.TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源.TX.RX ...
- mpu6050控制舵机云台
准备材料:2个舵机mg90,云台支架,1个arduino-uno,mpu6050 编程工具:VScode-platformio or ArduinoIDE 我使用的是VScode在编辑代码上会更方 ...
- 记录一次java项目上线部署
环境 操作系统:CentOS Linux release 8.0.1905 数据库:mariadb10.3.17 安装数据库 yum install -y mariadb mariadb-server ...
- Spring-boot注入配置为java静态属性
配置文件 注入静态变量 注意 类上面有:@Component注解 使用注入的静态变量 成功