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

题解

传送门

题解

1442599-20190228163659814-149193638.png

然而要我来说我感觉只是个爆搜啊……

//minamoto
#include<bits/stdc++.h>
#define R register
#define ll long long
#define ls (p<<1)
#define rs (p<<1|1)
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
inline char getop(){R char ch;while((ch=getc())>'Z'||ch<'A');return ch;}
char sr[1<<21],z[20];int C=-1,Z=0;
inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;}
void print(R ll x){if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++C]=z[Z],--Z);sr[++C]='\n';
}
const int N=2e5+5;
int r[N<<2],mx[N<<2],mn[N<<2],v[N],n,m,x0,ql,qr;ll res,a,b,c;char op;
inline int Rand(){x0=(1ll*100000005*x0+20150609)%998244353;return x0/100;}
inline void ppd(R int p){r[p]^=1,swap(mn[p],mx[p]),mn[p]=100000-mn[p],mx[p]=100000-mx[p];}
inline void pd(R int p){if(r[p])r[p]=0,ppd(ls),ppd(rs);}
inline void upd(R int p){mx[p]=max(mx[ls],mx[rs]),mn[p]=min(mn[ls],mn[rs]);}
void build(int p,int l,int r){if(l==r)return mx[p]=mn[p]=v[l],void();int mid=(l+r)>>1;build(ls,l,mid),build(rs,mid+1,r);upd(p);
}
void update(int p,int l,int r,int x,int t){if(l==r)return mx[p]=mn[p]=t,void();int mid=(l+r)>>1;pd(p);x<=mid?update(ls,l,mid,x,t):update(rs,mid+1,r,x,t);upd(p);
}
void rev(int p,int l,int r){if(ql<=l&&qr>=r)return ppd(p);int mid=(l+r)>>1;pd(p);if(ql<=mid)rev(ls,l,mid);if(qr>mid)rev(rs,mid+1,r);upd(p);
}
inline ll calc(R int x,R int y){return 1ll*x*a+1ll*y*b+1ll*x*y*c;}
void query(int p,int l,int r){int mid=(l+r)>>1;pd(p);if(ql<=l&&qr>=r){if(l==r)return cmax(res,calc(l,mx[p])),void();if(calc(r,mx[rs])>res)query(rs,mid+1,r),void();if(calc(mid,mx[ls])>res)query(ls,l,mid),void();return;}if(ql<=mid)query(ls,l,mid);if(qr>mid)query(rs,mid+1,r);
}
int main(){
//  freopen("testdata.in","r",stdin);n=read(),m=read(),x0=read();fp(i,1,n)v[i]=Rand()%100001;build(1,1,n);while(m--){op=getop(),ql=Rand(),qr=Rand();if(op=='C')ql=ql%n+1,qr=qr%100001,update(1,1,n,ql,qr);else{ql=ql%n+1,qr=qr%n+1;if(ql>qr)swap(ql,qr);if(op=='R')rev(1,1,n);else a=read(),b=read(),c=read(),res=0,query(1,1,n),print(res);}}return Ot(),0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10451332.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Raspberry Pi上设置两因素身份验证

Kiklas/ShutterstockKiklas /快门The Raspberry Pi is everywhere now, which is why it’s caught the eye of threat actors and cybercriminals. We’ll show you how to secure your Pi with two-factor authentication. Raspberry Pi现在无处不在&#xff0c;这就是为什么…

Laravel Passport里的授权类型介绍

本文来自pilishen.com----原文链接; 欢迎来和pilishen一起学习php&Laravel&#xff1b;学习群&#xff1a;109256050OAuth2是一个安全框架&#xff0c;控制着程序受保护部分的准入&#xff0c;主要是控制不同的客户端如何来调取API&#xff0c;保证它们在请求相应资源的时候…

vue 开发环境搭建

1.创建vue项目 1.node js 生成项目&#xff0c;编译项目 2.hbuilder 开发环境 1.下载安装node js http://nodejs.cn/download/ 确认是否安装成功 如果安装不了 代码错误2503 解决方法&#xff1a; 管理员命令运行cmd; cd\ cd C:\Users\Administrator\Desktop msiexec/package n…

iphone视图放大_如何将iPhone用作放大镜

iphone视图放大It’s a common problem: Some things are just too hard to see. Usually, they’re too far away, too dark, or too small. With a feature called Magnifier, your iPhone can function as a magnifying glass and sight aid. Here’s how to use it. 这是一…

chmod权限

本文引用:https://www.cnblogs.com/zhangym/p/5826200.html linux数字权限解释 644 第一位代表文件所有者的权限,第二位代表同组用户的权限&#xff0c;第三位代表其他用户的权限. 读取权限等于4,用r表示;写入权限2,用w表示;执行权限1,用x表示. 通过4、2、1组合,得到以下几种权…

输出最大值MXNet实现

网络结构&#xff0c;输入为2个数&#xff0c;先经过10个节点的全连接层&#xff0c;再经过10个节点的ReLu&#xff0c;再经过10个节点的全连接层&#xff0c;再经过1个节点的全连接层&#xff0c;最后输出。 #-*-coding:utf-8-*- import logging import math import random im…

discord linux_如何在Discord中应用文本格式

discord linuxDiscord allows for text-and audio-based chatting between gamers and other like-minded individuals. If you want to make a bigger impact on Discord, you can use formatting to jazz up your text-based messages. Here’s how. Discord允许游戏玩家和其…

一张图看懂阿里云网络产品[十二]云企业网

2019独角兽企业重金招聘Python工程师标准>>> 摘要&#xff1a; 阿里云致力于为用户提供优质、高效、稳定的网络传输环境&#xff0c;云企业网&#xff08;Cloud Enterprise Network&#xff09;将提供一种能够快速构建混合云和分布式业务系统的全球网络&#xff0c;…

# 2019-2020.3 《java程序设计》第一周学习总结

2019-2020-3 《Java 程序设计》第一周学习总结 在本周的学习中&#xff0c;学习到了好多也收获了好多&#xff0c;从最基础的安装虚拟机开始&#xff0c;根据老师的博客中的教程一步一步的进行&#xff0c;在这过程中也遇到了好多问题&#xff0c;因为是初步接触Linux系统&…

聊聊Java反射

反射是Java最重要的特性。通过Java反射可以在运行时知道一个类的所有成员和方法&#xff0c;知道一个对象的类类型、成员和方法的所有信息&#xff0c;进而调用对象的方法或生成对象的代理或包装类。Java是面向对象语言&#xff0c;除了静态变量或原始数据类型外都是完全面向对…

01. 把存储过程结果集SELECT INTO到临时表

原文:01. 把存储过程结果集SELECT INTO到临时表在开发过程中&#xff0c;很多时候要把结果集存放到临时表中&#xff0c;常用的方法有两种。 一. SELECT INTO 1. 使用select into会自动生成临时表&#xff0c;不需要事先创建 select * into #temp from sysobjects select * fro…

day5学python 基础+装饰器内容

基础装饰器内容 递归特性# 1.必须有一个明确的结束条件# 2.每次进入更深一层递归时&#xff0c;问题规模相比上次递归应有所减少# 3.递归效率不高 def run(n):print(n)if int(n/2)>0:return run(n / 2)print("-->",n) run(10) 局部变量与全局变量知识 1.全局变…

如何在Windows 10上跳过回收站以删除文件

Windows 10 normally sends files you delete to the Recycle Bin. They’ll be kept until you empty it—or, in some cases, until Windows 10 automatically empties your Recycle Bin. Here’s how to skip the Recycle Bin and delete files immediately. Windows 10通常…

OSChina 周日乱弹 —— 我叫张一条

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2018&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 莱布妮子 &#xff1a;分享Lube的单曲《Skoro dembel》 《Skoro dembel》- Lube 手机党少年们想听歌&#xff0c;请使劲儿戳&am…

面向对象初识

一. 面向对象初识 1.1 回顾面向过程编程vs函数式编程 # 面向过程编程 测量对象的元素个个数。 s1 fjdsklafsjda count 0 for i in s1:count 1l1 [1,2,3,4] count 0 for i in l1:count 1 面向过程编程def func(s):count 0for i in s:count 1return count …

iOS逆向:在任意app上开启malloc stack追踪内存来源

lldb有一个内存调试工具malloc stack&#xff0c;开启以后就可以查看某个内存地址的malloc和free记录&#xff0c;追踪对象是在哪里创建的。 这个工具可以打印出对象创建的堆栈&#xff0c;而在逆向时&#xff0c;也经常需要追踪某些方法的调用栈&#xff0c;如果可以随时打印出…

【CH4302】Interval GCD

思路&#xff1a;线段树维护a的差分数组的gcd&#xff0c; 因为$gcd(a_1,a_2,a_3,...,a_n)gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。 原区间修改可以转化为差分数组上的两次单点修改。 因为实际计算时还需要原数&#xff0c;所以用树状数组维护b的增减量。 询问时&#xff…

Vue 的路由实现 Hash模式 和 History模式

Hash 模式: Hash 模式的工作原理是onhashchange事件&#xff0c;Window对象可以监听这个事件... 可以通过改变路径的哈希值&#xff0c;来实现历史记录的保存&#xff0c;发生变化的hash 都会被浏览器给保存下来&#xff0c;所以下次尽管浏览器没有请求服务器&#xff0c;但是还…

我的第一次——网站备案

暂无内容 转载于:https://my.oschina.net/vright/blog/1784979

使用LiveClick升级您的实时书签

If you like to subscribe to feeds using Firefox’s Live Bookmarks feature, the LiveClick extension gives you so many upgrades that I can only cover the highlights of how great it is. 如果您想使用Firefox的“实时书签”功能订阅供稿&#xff0c;则LiveClick扩展程…