这个题为什么会放在数据结构啊

首先因为有决策包容性,对于一个n每次必然选择一个n%p最大的p,令n减n%p

设fi表示i变成0的步数的话,同样我们可以知道f是有单调性的

假如fd能转移到fk,首先d一定是某个p的倍数,并且k-d+1<pi才能够转移

对于一个合法的d,它能够影响的长度就是pp,其中pp|d并且在给出的质数中是最大的,设它为s(d)

由于f有单调性,并且决策点影响的是由它开始往后的一段,那么决策也有单调性,假如我们知道了这个就可以O(n)指针扫决策点更新了

考虑如何求s

我们可以线性筛一次数,并把每个数被那个点标记记录下来,记为gi

先把每个给出的质数标记为自己,那么s(i)=max(s(i/gi),s(gi)) 好妙啊!

gb卡我空间

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1e5+;
const int maxp=1e7+; int n,p[maxn]; int m,q[maxn];
int f[maxp],s[maxp]; int pr,g[maxp];bool v[maxp];
void dddd(int mx)
{
for(int i=;i<=mx;i++)
{
if(v[i]==false)
{
f[++pr]=i;
g[i]=i;
}
for(int j=;j<=pr&&i*f[j]<=mx;j++)
{
v[i*f[j]]=true;
g[i*f[j]]=f[j];
if(i%f[j]==)break;
}
}
} int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout); scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d",&p[i]),s[]=max(s[],p[i]);
int mx=;
for(int i=;i<=m;i++)
scanf("%d",&q[i]),mx=max(mx,q[i]); //.....read...... dddd(mx);
s[]=-;
for(int i=;i<=n;i++)s[p[i]]=p[i];
for(int i=;i<=mx;i++)s[i]=max(s[i/g[i]],s[g[i]]); //.....gets...... f[]=;int j=;
for(int i=;i<=mx;i++)
{
while(j<i&&(s[j]==-||f[j]==-||j+s[j]-<i))j++;
if(j==i)f[i]=-;
else f[i]=f[j]+;
} //.....getf..... for(int i=;i<=m;i++)
{
if(f[q[i]]==-)puts("oo");
else printf("%d\n",f[q[i]]);
} //.....print..... return ;
}

bzoj3136: [Baltic2013]brunhilda的更多相关文章

  1. 【BZOJ 3136】 3136: [Baltic2013]brunhilda (数论?)

    3136: [Baltic2013]brunhilda Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 238  Solved: 73[Submit][ ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  3. 【BZOJ 3133】 3133: [Baltic2013]ballmachine (线段树+倍增)

    3133: [Baltic2013]ballmachine Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 148  Solved: 66 Descri ...

  4. BZOJ_3133_[Baltic2013]ballmachine_堆+倍增

    BZOJ_3133_[Baltic2013]ballmachine_堆+倍增 Description 有一个装球机器,构造可以看作是一棵树.有下面两种操作: 从根放入一个球,只要下方有空位,球会沿着树 ...

  5. [BZOJ3133] [Baltic2013]ballmachine(树上倍增+堆)

    [BZOJ3133] [Baltic2013]ballmachine(树上倍增+堆) 题面 有一个装球机器,构造可以看作是一棵树.有下面两种操作: 从根放入一个球,只要下方有空位,球会沿着树滚下.如果 ...

  6. 【JZOJ3318】Brunhilda的生日

    description 除去对铁质盔甲强烈的热爱,Brunhilda是一个正常的7岁女孩.近期,她正在策划一个完美的生日派对.她发明了如下的一个游戏:所有的孩子在一个数k被宣读之前不停地跑来跑去.当这 ...

  7. bzoj3135: [Baltic2013]pipesd

    Description 有n个水库,m条管道.Jester会在某些管道中间凿开一个洞,让水流出来或者用水泵把水打进去.保证这个流速是偶数.对于一条管道(u, v),如果在中间凿开了一个洞让水流出来,流 ...

  8. bzoj3136

    Description 给定m个素数和Q个询问.每个询问有n个人,每次操作可以任意选择其中的一个素数p(素数可以重复使用),然后去掉剩余人数 mod p个人.对于每个询问,我们想知道,至少需要多少步操 ...

  9. BZOJ3133[Baltic2013]ballmachine

    题目描述 https://www.lydsy.com/JudgeOnline/problem.php?id=3133 题解 还是分两个操作来说吧. 先看第一个操作,放球,可以发现,对于祖先节点和后代节 ...

随机推荐

  1. JSP学习笔记(七十八):struts2中s:select标签的使用

    1.第一个例子: <s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00& ...

  2. Servlet 2.4 规范之第二篇:Servlet接口

    Servlet接口是Servlet API的最核心抽象类.所有的servlets都直接实现了这个接口,或者以更通用的方式继承了这个接口的实现类.Servlet API自带了两个实现了Servlet接口 ...

  3. 有向图tarjan算法求连通分量的粗浅讲解、证明, // hdu1269

    打算开始重新复习一遍相关算法.对于有向图tarjan算法,通过学习过很多说法,结合自己的理解,下面给出算法自己的观点. 算法总模型是一个dfs,结合一个stack(存放当前尚未形成SCC的点集合),记 ...

  4. Bruce Eckel:编程生涯

    大家总是问一个错误的问题:“我应该学习C++还是Java?”在本文中,我将告诉大伙儿:对于选择编程生涯真正需要关注的是哪些问题. 请注意,这篇文章的目标读者并不是那些已经做出自己选择的人.(对于这些人 ...

  5. python多线程实践小结

    参考:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html #!/usr/bin/env python import sys ...

  6. [Bzoj5043][Lydsy1709月赛]密码破译(按位dp)

    5043: [Lydsy1709月赛]密码破译 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 477  Solved: 125[Submit][Sta ...

  7. Linux下运行Java项目时,出现No X11 DISPLAY variable was set, but this program performed an operation which requires it.的问题解决

    在~/.bashrc环境变量文件最下方加入: export DISPLAY=:0.0 然后,刷新环境变量以使其生效: source -/.bashrc 参考:http://stackoverflow. ...

  8. 解决filter拦截request中body内容后,字符流关闭,无法传到controller的问题

    解决filter拦截request中body内容后,字符流关闭,无法传到controller的问题 2.问题: 在一般的请求中,content-type为:application/x-www-form ...

  9. filter过滤器实现特殊字符转义

    web.xml <!-- 特殊字符转义或转换 --> <filter> <filter-name>XssFilter</filter-name> < ...

  10. iOS App 项目:会员卡管理系统设计方案

    1.需求描写叙述 店主须要管理自己的会员信息和充值卡信息以及消费纪录 店主觉得购买电脑和外设成本太高,并且店面没有地方容纳这些设备 店主希望通过手机来完毕这些功能.但尽量不产生流量.对网络要求较低 店 ...