白皮书393页面。

乱搞了原始数组中。其实用另一种阵列块记录。

你不能改变原始数组。

请注意,与原来的阵列和阵列块的良好关系,稍微细心处理边境。这是不难。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#define maxn 300005
#define SIZE 600
using namespace std; int a[maxn];
int block[maxn];
int b[maxn];
void work(int p,int x)
{
int old=b[p];
b[p]=x;
int BLOCK=p/SIZE;
int pos=p;
for(int i=BLOCK*SIZE;i<BLOCK*SIZE+SIZE;i++)
{
if(a[i]==old)
{
pos=i;
a[i]=x;
break;
}
}
while(block[pos+1]==block[p] && a[pos+1]<a[pos])
{
swap(a[pos+1],a[pos]);
pos++;
}
while(pos-1>=0 && block[pos-1]==block[p] && a[pos-1]>a[pos])
{
swap(a[pos-1],a[pos]);
pos--;
}
} int main()
{
int n,m,u;
while(scanf("%d%d%d",&n,&m,&u)!=EOF)
{
memset(a,0x3f,sizeof a);
memset(block,0x3f,sizeof block); for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
block[i]=i/SIZE;
} for(int i=0;i<(n-1)/SIZE;i++)
{
sort(a+i*SIZE,a+(i+1)*SIZE);
} sort(a+((n-1)/SIZE*SIZE),a+n); while(m--)
{
int l,r,v,p;
scanf("%d%d%d%d",&l,&r,&v,&p);
l--,r--,p--;
int ans=0;
if(block[l]==block[r])
{
for(int i=l;i<=r;i++)
if(b[i]<v)ans++;
}
else
{
for(int i=l;block[i]==block[l];i++)
{
if(b[i]<v)ans++;
}
for(int i=r;block[i]==block[r];i--)
if(b[i]<v)ans++; for(int i=SIZE*(l/SIZE+1);i<r/SIZE*SIZE;i+=SIZE)
{
ans+=lower_bound(a+i,a+i+SIZE,v)-(a+i);
}
}
work(p,(long long)u*ans/(r-l+1));
}
for(int i=0;i<n;i++)
printf("%d\n",b[i]);
}
return 0;
} /*
10 3 5
10 9 8 7 6 5 4 3 2 1
2 5 9 4
2 9 6 5
4 10 5 6
*/

版权声明:本文博客原创文章,博客,未经同意,不得转载。

uva 12003 Array Transformer (大规模阵列)的更多相关文章

  1. UVA 12003 Array Transformer

    Array Transformer Time Limit: 5000ms Memory Limit: 131072KB This problem will be judged on UVA. Orig ...

  2. uva 12003 Array Transformer (线段树套平衡树)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  3. UVa 12003 Array Transformer (分块)

    题意:给定一个序列,然后有 m 个修改,问你最后的序列是什么,修改是这样的 l r v p 先算出从 l 到 r 这个区间内的 小于 v 的个数k,然后把第 p 个的值改成 k * u / (r - ...

  4. Array Transformer UVA - 12003

    题目:传送门 题意: 给你n个数,要进行m次操作 对于每次操作(l,r,v,p)代表:在区间[l,r]中有x(这个x是需要你自己找出来的)个数小于v,你需要把序列的第p个位置的值改成u∗k/(r−l ...

  5. 毫米波大规模阵列中的AOA估计

    1.AOA估计在毫米波大规模MIMO中的重要性 在毫米波大规模MIMO的CSI估计中,AoA估计具有重要地位,主要原因归纳如下: 毫米波大规模MIMO 的信道具有空域稀疏性,可以简单通过AoA 和路径 ...

  6. UVA - 348Optimal Array Multiplication Sequence(递推)

    id=19208">题目:Optimal Array Multiplication Sequence 题目大意:给出N个矩阵相乘.求这些矩阵相乘乘法次数最少的顺序. 解题思路:矩阵相乘 ...

  7. uva 12003 分块

    大白上的原题,我就练练手... #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ; ll blo ...

  8. UVa 11922 - Permutation Transformer 伸展树

    第一棵伸展树,各种调试模板……TVT 对于 1 n 这种查询我处理的不太好,之前序列前后没有添加冗余节点,一直Runtime Error. 后来加上冗余节点之后又出了别的状况,因为多了 0 和 n+1 ...

  9. uva 11922 - Permutation Transformer

    splay的题: 学习白书上和网上的代码敲的: #include <cstdio> #include <cstring> #include <cstdlib> #i ...

随机推荐

  1. maven配置文件里改动默认jre

    方法一:打开%maven_home%\conf\setting.xml,仅仅会在新建项目时自己主动使用1.6的导入项目不会 在<profiles>标签内加入�例如以下配置: <pro ...

  2. 不用库(框架),自己写ajax

    平常会使用ajax来请求数据,加载一个库(框架),或许仅仅maybe就使用了它的ajax部分. 写个ajax,一来可以经历一下处理问题的过程,提升技术能力,二来工作中有时真的用不着这么大的一个库(框架 ...

  3. C#和C++下数据类型对应表

    /C++中的DLL函数原型为//extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char ...

  4. Reactive ExtensionsLINQ和Rx简单介绍

    LINQ和Rx简单介绍 相信大家都用过Language Integrated Query (LINQ),他是一种强大的工具能够从集合中提取数据.Reactive Extensions(Rx)是对LIN ...

  5. 【转】Android 避免APP启动闪黑屏(Theme和Style)

    前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受.没办法,只能想想怎么解决,最后找到了下面的方法.闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和on ...

  6. JAVA基金会 (三)反射 反思的深度分析

    上一页已经推出反映的一些基本概念,这主要是通过一个例子反映谈的过程,以及样品的实际应用. 这个样例是这种设计思路:从一个属性文件里读取一段字符串,然后,依据该字符串生成相应的类实例对象:这之后另一个增 ...

  7. 【甘道夫】HBase连接池 -- HTablePool是Deprecated之后

    说明: 近期两天在调研HBase的连接池,有了一些收获,特此记录下来. 本文先将官方文档(http://hbase.apache.org/book.html)9.3.1.1节翻译,方便大家阅读,然后查 ...

  8. andriod 在windows配置环境

    andriod开发环境配置 个人信息:就读于燕大本科软件project专业 眼下大四; 本人博客:google搜索"cqs_2012"就可以; 个人爱好:酷爱数据结构和算法,希望将 ...

  9. Android使用代码消除App数据并重新启动设备

    /** * 使用代码消除App数据 * 我们不寻常的清除App数据,中找到相应的App * 然后选择其清除数据.以下给出代码实现. * * 注意事项: * 1 设备须要root * 2 该演示样例中删 ...

  10. [android更新类的内容开发APP]四、项目布局的基本功能(继续)

    昨天,只拿到电脑,别说,眼泪 http://joveth.github.io/funny/ 1.选项卡的滑动效果 要知道.用这个选项卡就是想让它滑动起来,不然的话.我才不喜欢用它呢. 在让他滑动之前, ...