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 ...
随机推荐
- Jupyter Kernel Error 解决办法
首先在pycharm的terminal中输入 python -m ipykernel install --user 之后会如下图显示: 这就是kernel的安装路径. 然后输入: jupyter ke ...
- C语言复习(一)
类型为void*的指针代表对象的地址,而不是类型 如果需要使用另一个源文件中定义的变量,那么只需要在定义变量前加上extern关键字 ex: extern int x;//x在其他文件中定义 左值表达 ...
- Mybatis学习笔记-注解开发
面向接口编程 根本原因:[解耦],[可拓展],[更高规范性] 接口类型: abstract class interface 使用注解开发 简单语句可用注解开发(直接查询,列名与属性名相同) 本质:反射 ...
- springboot集成swagger的pom依赖
pom依赖加入以下内容 //版本一致做个属性 <properties> <swagger.version>2.6.1</swagger.version> </ ...
- NTP 集群简略部署指南
NTP 集群简略部署指南 by 无若 1. NTP 简介 网络时间协议(英语:Network Time Protocol,简称NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的 ...
- AQS学习(一)自旋锁原理介绍(为什么AQS底层使用自旋锁队列?)
1.什么是自旋锁? 自旋锁作为锁的一种,和互斥锁一样也是为了在并发环境下保护共享资源的一种锁机制.在任意时刻,只有一个执行单元能够获得锁. 互斥锁通常利用操作系统提供的线程阻塞/唤醒机制实现,在争用锁 ...
- 字符串对比 BASIC-15
字符串对比 代码 import java.util.Scanner; /*给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等 ...
- SunOS与Solaris系统的对应关系
下文绝大部分译自维基百科Solaris词条的"历史"部分: http://en.wikipedia.org/wiki/Solaris_(operating_system)#Hist ...
- SpringBoot开发十二-账号设置
需求介绍-账号设置 账号设置里面的上传头像(文件) 首先请求必须是一个 POST 请求,其次表单的属性 enctype = "multipart/form-data" 然后就是利用 ...
- 六种方式,教你在SpringBoot初始化时搞点事情!
前言 在实际工作中总是需要在项目启动时做一些初始化的操作,比如初始化线程池.提前加载好加密证书....... 那么经典问题来了,这也是面试官经常会问到的一个问题:有哪些手段在Spring Boot 项 ...