1000w的数组,一开始都是2^31-1,然后经过5*10^7次随机位置的随机修改,问你每次的全局最小值。

有效的随机修改的期望次数很少,只有当修改到的位置恰好是当前最小值的位置时才需要扫一下更新最小值。

分个块或者直接暴力都可以。

#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int sz,l[10005],r[10005],sum,num[10000005];
unsigned int x0,x1,a,b,c,A[10000005],minv[10005];
unsigned int next() {
unsigned int t = x0 * a + x1 * b + c;
x0 = x1;
x1 = t;
return x0 >> 2;
}
int n,q;
int main(){
// freopen("i.in","r",stdin);
cin>>n>>q>>x0>>x1>>a>>b>>c;
for(int i=1;i<=n;++i){
A[i]=((unsigned int)1<<31)-1;
}
sz=sqrt(n);
for(sum=1;sum*sz<n;sum++)
{
l[sum]=(sum-1)*sz+1;
r[sum]=sum*sz;
for(int i=l[sum];i<=r[sum];i++)
num[i]=sum;
}
l[sum]=sz*(sum-1)+1;
r[sum]=n;
for(int i=l[sum];i<=r[sum];i++)
num[i]=sum;
for(int i=1;i<=sum;++i){
minv[i]=((unsigned int)1<<31)-1;
}
unsigned int nowans=((unsigned int)1<<31)-1;
unsigned int base=1;
unsigned int ans=0;
for(int i=1;i<=q;++i){
base*=(unsigned)10099;
unsigned int p=next()%(unsigned int)n;
unsigned int former=A[p+1];
A[p+1]=next();
int t=num[p+1];
if(former==minv[t]){
minv[t]=((unsigned int)1<<31)-1;
for(int i=l[t];i<=r[t];++i){
minv[t]=min(minv[t],A[i]);
}
}
else if(A[p+1]<minv[t]){
minv[t]=A[p+1];
}
if(former==nowans){
nowans=((unsigned int)1<<31)-1;
for(int i=1;i<=sum;++i){
nowans=min(nowans,minv[i]);
}
}
else if(A[p+1]<nowans){
nowans=A[p+1];
}
ans+=nowans*base;
}
cout<<ans<<endl;
return 0;
}

【分块】【暴力】XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem I. Rage Minimum Query的更多相关文章

  1. XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem D. Great Again

    题目: Problem D. Great AgainInput file: standard inputOutput file: standard outputTime limit: 2 second ...

  2. XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem K. Piecemaking

    题目:Problem K. PiecemakingInput file: standard inputOutput file: standard outputTime limit: 1 secondM ...

  3. XVII Open Cup named after E.V. Pankratiev. Grand Prix of America (NAIPC-2017)

    A. Pieces of Parentheses 将括号串排序,先处理会使左括号数增加的串,这里面先处理减少的值少的串:再处理会使左括号数减少的串,这里面先处理差值较大的串.确定顺序之后就可以DP了. ...

  4. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Khamovniki Problem J Stairways解题报告(分块+维护凸壳)

    首先ORZ一发Claris聚聚的题解:http://www.cnblogs.com/clrs97/p/8689215.html,不然我可能没机会补过这道神题了. 这里写一个更详细的题解吧(我还是太菜了 ...

  5. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of SPb

    A. Base $i - 1$ Notation 两个性质: $2=1100$ $122=0$ 利用这两条性质实现高精度加法即可. 时间复杂度$O(n)$. #include<stdio.h&g ...

  6. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Siberia

    1. GUI 按题意判断即可. #include<stdio.h> #include<iostream> #include<string.h> #include&l ...

  7. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof

    A. City Wall 找规律. #include<stdio.h> #include<iostream> #include<string.h> #include ...

  8. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Khamovniki

    A. Ability Draft 记忆化搜索. #include<stdio.h> #include<iostream> #include<string.h> #i ...

  9. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Korea

    A. Donut 扫描线+线段树. #include<cstdio> #include<algorithm> using namespace std; typedef long ...

随机推荐

  1. 解决java在对MySQL插入数据时出现乱码问题

    1.在连接数据库的时候请注意, 最使用连接连接数据库的时候,必须在后面追加上编码的设置:useUnicode=true&characterEncoding=UTF-8,如下图所示. 参考连接: ...

  2. win7下安装Linux实现双系统全攻略

    http://jingyan.baidu.com/article/c275f6bacc3326e33c756743.html

  3. 大公司开源网址[www]

    https://github.com/blackberry https://github.com/CallForSanity?tab=repositories https://github.com/b ...

  4. Oracle sql中的正则表达式

    SELECT first_name, last_nameFROM employeesWHERE REGEXP_LIKE (first_name, '^Ste(v|ph)en$'); FIRST_NAM ...

  5. [ Linux ] 服务器更换硬盘

    服务器型号:ThinkServer RD650操作系统:Red Hat 6.7业务用途:生产环境监控机 接到机房邮件通知,告知某台服务器硬盘告警,并提供了设备SN号和机柜位置.根据提供想相关信息找到对 ...

  6. 后台传入的boolean类型到前台alert为String类型了(解决方法)

    后台代码: // 进入仪器list界面之前查看 是否是科研处人员        SessionContainer sc = (SessionContainer) session.getAttribut ...

  7. C#判断目录是否为隐藏

    判断方法: DirectoryInfo di = new DirectoryInfo(path); if ((di.Attributes & FileAttributes.Hidden) == ...

  8. hrbust - 2239

    影子模仿术 Time Limit: 500 MS Memory Limit: 32768 K Total Submit: 7(5 users) Total Accepted: 2(2 users) R ...

  9. Python+Selenium 自动化实现实例-Xpath捕捉元素的几种方法

    #coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get("ht ...

  10. Mayavi入门

    环境,win7/10 64位, python3.x 1,安装 Mayavi4.6 原装的pip下载奇慢,先更换一下源,豆瓣的更新要比清华的快 首先在window的文件夹窗口输入 : %APPDATA% ...