http://uoj.ac/problem/119

可以认为数据基本随机,于是可以直接用线段树维护,对每个询问在线段树上进行剪枝搜索。

#include<bits/stdc++.h>
typedef long long i64;
char ib[],*ip=ib,ob[],*op=ob;
int _(){
int x=;
while(*ip<)++ip;
while(*ip>)x=x*+*ip++-;
return x;
}
void pr(i64 x){
int ss[],sp=;
do ss[++sp]=x%;while(x/=);
while(sp)*op++=ss[sp--]+;
*op++=;
}
i64 max(i64 a,i64 b){return a>b?a:b;}
int n,m,seed,_l,_r;
i64 A,B,C,ans;
int mt(){
seed=(seed*100000005ll+)%;
return seed/;
}
struct node{
node*lc,*rc;
int L,R,M;
int rv;
i64 y1,y2,xy1,xy2;
void _rv(){
std::swap(y1,y2);
std::swap(xy1,xy2);
rv^=;
}
void dn(){
if(rv){
rv=;
lc->_rv();
rc->_rv();
}
}
void up(){
y1=max(lc->y1,rc->y1);
y2=max(lc->y2,rc->y2);
xy1=max(lc->xy1,rc->xy1);
xy2=max(lc->xy2,rc->xy2);
}
void init(int v){
y1=v,y2=-v;
xy1=i64(L)*y1,xy2=i64(L)*y2;
}
void chg(){
if(L==R)return init(A);
dn();
(_l<=M?lc:rc)->chg();
up();
}
void rev(){
if(_l<=L&&R<=_r)return _rv();
dn();
if(_l<=M)lc->rev();
if(_r>M)rc->rev();
up();
}
i64 cal(){
return A*R+B*y1+C*xy1;
}
void find(i64 v){
if(_l>R||_r<L||v<=ans)return;
if(L==R)return void(ans=v);
dn();
i64 vl=lc->cal(),vr=rc->cal();
if(vl>vr)lc->find(vl),rc->find(vr);
else rc->find(vr),lc->find(vl);
}
}ns[],*np=ns,*rt;
node*build(int L,int R){
node*w=np++;
w->L=L,w->R=R;
if(L<R){
int M=w->M=L+R>>;
w->lc=build(L,M);
w->rc=build(M+,R);
w->up();
}else w->init(mt()%);
return w;
}
int main(){
fread(ib,,sizeof(ib),stdin);
n=_(),m=_(),seed=_();
rt=build(,n);
while(m--){
int o=_();
if(o=='C'-){
_l=mt()%n+,A=mt()%;
rt->chg();
}else{
_l=mt()%n+,_r=mt()%n+;
if(_l>_r)std::swap(_l,_r);
if(o=='R'-){
rt->rev();
}else{
A=_(),B=_(),C=_();
ans=;
if(A|B|C)rt->find(rt->cal());
pr(ans);
}
}
}
fwrite(ob,,op-ob,stdout);
return ;
}

uoj#119. 【UR #8】决战圆锥曲线的更多相关文章

  1. uoj#119. 【UR #8】决战圆锥曲线(线段树+复杂度分析)

    题解 传送门 题解 然而要我来说我感觉只是个爆搜啊-- //minamoto #include<bits/stdc++.h> #define R register #define ll l ...

  2. UOJ 【UR #5】怎样跑得更快

    [UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i ...

  3. UOJ #22 UR #1 外星人

    LINK:#22. UR #1 外星人 给出n个正整数数 一个初值x x要逐个对这些数字取模 问怎样排列使得最终结果最大 使结果最大的方案数又多少种? n<=1000,x<=5000. 考 ...

  4. UOJ.52.[UR #4]元旦激光炮(交互 思路)

    题目链接 \(Description\) 交互库中有三个排好序的,长度分别为\(n_a,n_b,n_c\)的数组\(a,b,c\).你需要求出所有元素中第\(k\)小的数.你可以调用至多\(100\) ...

  5. UOJ【UR #12】实验室外的攻防战

    题意: 给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$ 变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$ 考虑一个数字从A排列到B排列连出来的路径 ...

  6. ZJOI2019Round#1

    考的这么差二试基本不用去了 不想说什么了.就把这几天听课乱记的东西丢上来吧 这里是二试乱听课笔记ZJOI2019Round#2 ZJOI Round#1 Day1 M.<具体数学>选讲 罗 ...

  7. 【UOJ#33】【UR#2】树上GCD 有根树点分治 + 容斥原理 + 分块

    #33. [UR #2]树上GCD 有一棵$n$个结点的有根树$T$.结点编号为$1…n$,其中根结点为$1$. 树上每条边的长度为$1$.我们用$d(x,y)$表示结点$x,y$在树上的距离,$LC ...

  8. uoj #118. 【UR #8】赴京赶考 水题

    #118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description ...

  9. uoj #31. 【UR #2】猪猪侠再战括号序列 贪心

    #31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Descript ...

随机推荐

  1. xdoj--1077: (循环节长度)

    1077: 循环节长度 时间限制: 1 Sec  内存限制: 128 MB提交: 103  解决: 37[提交][状态][讨论版] 题目描述 数一有很多的有理数,然而有的是有限小数,如1/2=0.5, ...

  2. HDU 1907:John(尼姆博弈变形)

    John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  3. nginx防盗链、nginx访问控制、nginx解析php相关配制、nginx代理

    1.nginx防盗链编辑:vim /usr/local/nginx/conf/vhost/test.com.conf写入: location ~* ^.+\.(gif|jpg|png|swf|flv| ...

  4. Python基础-使用paramiko

    一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...

  5. java中类与方法叙述正确的是

    这道题的4个选项全是错的.  A.一个文件中,可以有多个public class  public class Main { public class Inner{ } } 即,外部类为public,还 ...

  6. MySQL Replication--修改主键为NULL导致的异常

    测试环境:MySQL 5.5.14/MySQL 5.6.36 测试脚本: create table tb001(id int primary key,c1 int); alter table tb00 ...

  7. 学生信息管理 和ROM常见的操作

    ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...

  8. pghoard 面向云存储的pg 备份&&恢复工具

    pghoard 面向云存储的pg 备份&&恢复工具 包含的特性 自动定期basebackup 自动事务日志(WAL / Xlog软件)备份(使用pg_receivexlog, arch ...

  9. lapis 项目添加prometheus 监控集成grafana

    操作很简单,主要是进行界面的配置以及prometheus 服务的配置, 可以和https://www.cnblogs.com/rongfengliang/p/10074044.html &&a ...

  10. Oracle12C版本安装步骤

    一.下载路径 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html file1,file ...