【tyvj1039】忠诚2
2016-03-20 13:59
253 查看
tyvj1039
主要是我太愚蠢。。。switch写错了卡了一会儿233
主要是我太愚蠢。。。switch写错了卡了一会儿233
#include<cstdio> using namespace std; const int INF=300000+10; int m, n, minv[INF], a[INF]; int x, y, _min; int min(int x, int y) {return x < y ? x : y;} void ctb(int o, int l, int r){ if(l == r){ minv[o] = a[l]; } else { int m = l + (r-l)/2; ctb(o*2, l, m); ctb(o*2+1, m+1, r); minv[o] = min(minv[o*2], minv[o*2+1]); } } void update(int o, int l, int r){ int m = l + (r-l)/2; if(l == r) minv[o] = y; else { if(x <= m) update(o*2, l, m); else update(o*2+1, m+1, r); minv[o] = min(minv[o*2], minv[o*2+1]); } } void query(int o, int l, int r){ if(x <= l && r <= y){ _min = min(_min, minv[o]); } else { int m = l + (r-l)/2; if(x <= m) query(o*2, l, m); if(y > m) query(o*2+1, m+1, r); } } int main() { scanf("%d %d", &m, &n); int i, p; for(i = 1; i <= m; i++) scanf("%d", &a[i]); ctb(1, 1, m); while(n--){ scanf("%d %d %d", &p, &x, &y); if(p==1) { _min=1<<30; query(1, 1, m); printf("%d ", _min); } else if(p==2) { update(1, 1, m); } } return 0; }
相关文章推荐
- java基础之七:
- Jenkins进阶系列之——18Jenkins语言本地化
- 简单高效的代码部署方法
- 如何友好的从数据框中取出向量?
- 神经网络可以拟合任意函数的视觉证明A visual proof that neural nets can compute any function
- 华为2014年校园招聘机试题(2)
- Jenkins进阶系列之——17Jenkins升级、迁移和备份
- python脚本生成exe可执行文件
- 虚函数和纯虚函数的作用与区别
- Shell 流程控制
- Java基础之六:关键字this、super、static
- Shell 流程控制
- aperm方法
- 安卓开发小知识-AppWidget探索
- leetcode 92. Reverse Linked List II
- Python 基础 员工信息列表
- Codeforces 631D - Messenger KMP
- SOAPUI 接口自动化学习笔记节选 如何用Groovy 脚本读取CSV 文件
- 在Java stream层面上探究客户端请求服务器数据
- 开发工具带来的进度影响