uvaoj 12003 - Array Transformer
来源:互联网 发布:淘宝运营商是真的吗 编辑:程序博客网 时间:2024/06/02 01:51
题解:
裸分块
总结:
1.对于学习那得起,放得下。
2.注意安排学习和休息的时间。
3.今天调试opencv的编译环境时间有点长,下次注意时间的把握
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;#define MAXN 300010#define SIZE 4096int num[MAXN],block[MAXN / SIZE + 1][SIZE];int n,m,u,l,r,v,p;int query(){ int lb = l / SIZE,rb = r / SIZE; int k = 0; if(lb == rb) { for(int i = l;i <= r;i++) if(num[i] < v)k++; return k; } for(int i = l;i < (lb + 1) * SIZE;i++) if(num[i] < v)k++; for(int i = rb * SIZE;i <= r;i++) if(num[i] < v)k++; for(int i = lb + 1;i < rb;i++) k += lower_bound(block[i],block[i] + SIZE,v) - block[i]; return k;}void modify(int val){ swap(num[p],val); int b = p / SIZE; if(b == (n - 1) / SIZE && (p + 1) % SIZE)return; int i; for(i = 0;;i++)if(val == block[b][i])break; block[b][i] = num[p]; for(;i != SIZE - 1 && block[b][i] > block[b][i + 1];i++) swap(block[b][i],block[b][i + 1]); for(;i && block[b][i] < block[b][i - 1];i--) swap(block[b][i],block[b][i - 1]);}int main(){ while(scanf("%d%d%d",&n,&m,&u) != EOF) { for(int i = 0;i < n;i++) { scanf("%d",&num[i]); block[i / SIZE][i % SIZE] = num[i]; } for(int i = 0;i < n / SIZE;i++) sort(block[i],block[i] + SIZE); while(m--) { scanf("%d%d%d%d",&l,&r,&v,&p); l--,r--,p--; int k = query(); modify((ll)u * k / (r - l + 1)); } for(int i = 0;i < n;i++) printf("%d\n",num[i]); }}
1 0
- uvaoj 12003 - Array Transformer
- UVA 12003Array Transformer(树套树)
- UVA 12003 Array Transformer [分块]
- 【uva 12003 Array Transformer】【分块】
- uva 12003 Array Transformer (块状数组)
- uva 12003 - Array Transformer(分块+树套树)
- 【分块】UVA 12003 Array Transformer 水题
- UVA 12003Array Transformer (分块)
- UVA 12003 Array Transformer (分块)
- uva12003 Array Transformer 分块
- uva12003 - Array Transformer 分块结构
- UVA12003.Array Transformer——分块
- byte-array-to-string-transformer 作用
- Transformer
- UVaOJ
- uvaoj 348 - Optimal Array Multiplication Sequence 构造答案
- Transformer info
- ViewPager TransFormer
- UVA1592 Database
- 谈谈我所理解的Hibernate
- FTP 跳转攻击
- 应该认识自己是谁
- beanstalkd消息队列在生产环境的应用
- uvaoj 12003 - Array Transformer
- iOS开发-Day32 数据持久化
- 基于OpenWrt添加ubus支持
- boost property tree 解析Json ini
- ViewPager添加圆点,循环翻页。fragment的使用
- SSM框架—详细整合教程(Spring+SpringMVC+MyBatis)
- UI课程02 UILabel,UITextField,UIButton
- 一名编程员毕业一年工作两年的感悟
- Mac 解决Can't connect to MySQL server on '127.0.0.1' (61)