BZOJ1423 : Optimus Prime
设$f[x]$表示为了保证自己可以取到质数$x$,第一步在$[0,n]$中可以选的数是多少。
这个数是唯一的,因为如果存在两个$f[x]=a,b(a<b)$,那么如果先手取了$a$,后手就能取$b$来让先手取不到$x$,矛盾。
如果$x$与下一个质数之间的差值大于$n$,那么$f[x]$就是结果,当$f[x]=0$时先手必败。
对于不超过$n$的$x$,$f[x]=x$。
对于大于$n$的$x,f[x]=f[y]$,其中$y$是$x$前面最近的与它差值大于$n$的质数,可以双指针得到。
如果没有找到终止态,取一定范围内的所有大质数的$f[x]$的众数,极有可能就是精确解。
#include<cstdio>
const int N=3000010,M=N/10,E=1010;
int T,n,t,i,j,tot,p[M],f[M],c[E],ans[E];bool v[N];
inline int cal(int n){if(~ans[n])return ans[n];int i,j;for(i=0;i<=n;i++)c[i]=0;for(i=j=0;i<=tot;i++){if(p[i]<=n)f[i]=p[i];else{while(j+1<i&&p[i]-p[j+1]>n)j++;f[i]=f[j];}if(i<tot&&p[i]+n<p[i+1])return ans[n]=f[i];if(i>tot/10*9)c[f[i]]++;}for(i=j=0;i<=n;i++)if(c[i]>c[j])j=i;for(i=0;i<=n;i++)if(i!=j&&c[i]*2>c[j])return ans[n]=0;return ans[n]=j;
}
int main(){for(v[1]=1,i=2;i<N;i++){if(!v[i])p[++tot]=i;for(j=1;j<=tot&&i*p[j]<N;j++){v[i*p[j]]=1;if(i%p[j]==0)break;}}for(i=0;i<E;i++)ans[i]=-1;scanf("%d",&T);while(T--){scanf("%d",&n);if(t=cal(n))printf("A %d\n",t);else puts("B");}return 0;
}
转载于:https://www.cnblogs.com/clrs97/p/7470001.html
BZOJ1423 : Optimus Prime相关推荐
- 关于 DRM 中 DUMB 和 PRIME 名字的由来
前言 在上一篇<DRM驱动程序开发(VKMS)>文章里,我们学习了如何编写一个最简单的 KMS 驱动.而本篇,我将以叙述的形式为大家讲解 DRM GEM 的相关概念,代码留到下一篇进行讲解 ...
- BERT大火却不懂Transformer?读这一篇就够了 原版 可视化机器学习 可视化神经网络 可视化深度学习...20201107
20211016 调节因子 20211004 [NLP]Transformer模型原理详解 - 知乎 论文所用 20210703 GPT模型与Transformer进行对比_znevegiveup1的 ...
- 这么多年,终于有人讲清楚Transformer了
作者 | Jay Alammar 译者 | 香槟超新星,责编 | 夕颜 来源 | CSDN(ID:CSDNnews) 注意力机制是一种在现代深度学习模型中无处不在的方法,它有助于提高神经机器翻译应用程 ...
- JDK/Dubbo/Spring 三种 SPI 机制,谁更好?
点击关注公众号,Java干货及时送达 来源:juejin.cn/post/6950266942875779108 SPI 全称为 Service Provider Interface,是一种服务发现机 ...
- oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录
也许避免在数据库中使用嵌套表的最佳原因是它们难以使用,并且语法文档未被记录且难以理解. 继续! 这是一个带有嵌套表的表. SQL> select f.force_name, t.id, t.na ...
- 京东数据驱动下的个性化推荐
刘尚堃 京东数据驱动下的个性化推荐系统(PPT附下载) Optimus Prime 2015-11-12 7:09:10 人物观点 评论(0) 刘尚堃·京东推荐搜索部技术总监 刘尚堃,京东推荐搜索部技 ...
- The Illustrated Transformer:中英文(看原文,很多翻译是错误的)
在上一篇文章中(previous post),我们研究了注意力机制 - 一种在现代深度学习模型中无处不在的(ubiquitous)方法. 注意力是一个有助于提高神经机器翻译(neural machin ...
- The Illustrated Transformer 翻译
In the previous post, we looked at Attention – a ubiquitous method in modern deep learning models. A ...
- 这么多年,终于有人讲清楚 Transformer 了!
注意力机制是一种在现代深度学习模型中无处不在的方法,它有助于提高神经机器翻译应用程序性能的概念.在本文中,我们将介绍Transformer这种模型,它可以通过注意力机制来提高训练模型的速度.在特定任务 ...
最新文章
- iphone如何信任软件_你还在用大众点评吗?评价软件失去信任还如何活下去
- 解决:geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic
- 使用Hexo在Github搭建静态博客
- 第十一集VLAN原理和VTP协议理论讲解
- Redhat7.4安装Oracle11g详细步骤
- Class类是什么? Class.forName()是干什么的?
- 成功解决numpy.linalg.LinAlgError: singular matrix
- java学习(106):字符串tocharArray,tolowercase,touppercase方法
- 实例38:python
- Hive-分区分桶操作
- SSH远程登录VWware上的LFS
- 企业风险定价中的Expected loss估计
- 查看Ubuntu系统的版本
- 一个数学公式求解的优化
- 数据库入门(SQL SEVER)之SQL语句删除单行数据,所有行数据,表和数据库
- Android pdfviewer的公章注释问题
- Labview软件、NI数据采集卡、汽车发动机数据采集学习总结(一)
- 奇迹虚拟服务器登录软件,奇迹mu 远程云服务器挂机
- left函数未定义_access中LEFT函数未定义的解决方案\表达式中'left'函数未定义。
- 【机器学习】初学理论知识
热门文章
- 【资源】《可解释的机器学习》,让机器学习不再神秘!
- 逻辑回归(LR)个人学习总结篇
- 用于金融时序预测的神经网络:可改善经典的移动平均线策略
- Ubuntu16.04+Cuda8.0+cuDNN6配置py-faster rcnn(转)
- linux 内核模块开发,linux内核模块开发(示例代码)
- linux里面vim自动显示行号,linux中vim永久显示行号、开启语法高亮
- matlab生成随机粗糙表面_随机粗糙面建模
- java 防止js注入_在WebView中如何让JS与Java安全地互相调用
- mavros 基于体轴坐标系下的无人机行人跟踪
- 潭州课堂25班:Ph201805201 爬虫高级 第三课 sclapy 框架 腾讯 招聘案例 (课堂笔记)...