CSP 记
csp
开考建好文件夹编译器不能用搞了半天换了台电脑
四道题看完一个小时过去了
第一题不会正解写了部分分还有点悬
第二题写暴力因为一个小错误调了半天
看时间不多了已经有点慌了
也没想正解直接开了下一题
从T3 T4选了T4写了部分分还写挂了
没有稳定好心态
和平常考试的感觉差了很多
T2
[CSP-S 2022] 假期计划
考场上没想正解用ST表写了个暴力痛失40分
考完一个小时就写出正解
我是大SB-_-
正解:
根据\(A,B\)正负性分情况讨论
线段树维护信息
- 当 \(B\)全为正 时 \(ans = A_{max}*B_{min}\)
- 当 \(B\)全为负 时 \(ans = A_{min}*B_{max}\)
- 当 \(B\)有正有负 时
- 当 \(A\)全为正 时 \(ans = A_{min}*B_{min}\)
- 当 \(A\)全为负 时 \(ans = A_{max}*B_{max}\)
- 当 \(A\)有正有负 时 \(ans\)必定为负(先手选正后手必选负、先手选负后手必选正)
- 当A选正时 B会选最小的负使\(ans\)最小 A应选正最小使\(ans\)尽量大 即\(ans = A_{正min} * B_{min}\)
- 当A选负时 B会选最大的正使\(ans\)最小 A应选负最大使\(ans\)尽量大 即\(ans = A_{负max} * B_{max}\)
所以需要用线段树维护\(A_{max}\) \(A_{min}\) \(B_{max}\) \(B_{min}\) \(A_{正min}\) \(A_{负max}\)
std:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ls p<<1
#define rs p<<1|1
const int N = 1e5+9;
int n,m,q,a[N],b[N];
struct tree
{
int l,r;
int mxA,mxB,miA,miB,zmiA,fmxA;
tree()
{
l=r=0;
miA=miB=zmiA=1e9+1;
mxA=mxB=fmxA=-1e9-1;
}
#define l(x) t[x].l
#define r(x) t[x].r
#define mxA(x) t[x].mxA
#define mxB(x) t[x].mxB
#define miA(x) t[x].miA
#define miB(x) t[x].miB
#define zmiA(x) t[x].zmiA
#define fmxA(x) t[x].fmxA
}t[N<<2];
tree operator +(const tree &l,const tree &r)
{
tree p;
p.l = l.l;
p.r = r.r;
p.mxA = max(l.mxA,r.mxA);
p.mxB = max(l.mxB,r.mxB);
p.miA = min(l.miA,r.miA);
p.miB = min(l.miB,r.miB);
p.zmiA = min(l.zmiA,r.zmiA);
p.fmxA = max(l.fmxA,r.fmxA);
return p;
}
void pushup(int p)
{
t[p] = t[ls] + t[rs];
}
void build(int p,int l,int r)
{
if(l == r)
{
l(p) = r(p) = l;
miA(p)=mxA(p)=a[l];
miB(p)=mxB(p)=b[l];
if(a[l] > 0)zmiA(p)=a[l];
else if(a[l] < 0)fmxA(p) = a[l];
else zmiA(p) = fmxA(p) = a[l];
return;
}
int mid = (l + r)>>1;
build(ls,l,mid);
build(rs,mid+1,r);
pushup(p);
}
tree query(int p,int l,int r)
{
if(l <= l(p) && r >= r(p))return t[p];
int mid = (l(p)+r(p))>>1;
if(r <= mid)return query(ls,l,r);
else if(l > mid)return query(rs,l,r);
else return query(ls,l,r)+query(rs,l,r);
}
int main()
{
// freopen("game.in","r",stdin);
// freopen("game.out","w",stdout);
scanf("%d%d%d",&n,&m,&q);
for(int i = 1;i <= n;i++)scanf("%d",&a[i]);
for(int i = 1;i <= m;i++)scanf("%d",&b[i]);
build(1,1,max(n,m));
while(q--)
{
int l1,r1,l2,r2;
scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
tree A = query(1,l1,r1);
tree B = query(1,l2,r2);
if(B.miB >= 0)printf("%lld\n",1ll*A.mxA*B.miB);
else if(B.mxB < 0)printf("%lld\n",1ll*A.miA*B.mxB);
else if(A.miA >= 0)printf("%lld\n",1ll*A.miA*B.miB);
else if(A.mxA < 0)printf("%lld\n",1ll*A.mxA*B.mxB);
else printf("%lld\n",max(1ll*A.zmiA*B.miB,1ll*A.fmxA*B.mxB));
}
return 0;
}
CSP 记的更多相关文章
- CSP踩被记
本来想起个清新脱俗的标题,但碍于语文功底不行,于是光明正大嫖了LiBoyi的高端创意,把这篇博客命名为踩被记. Day -6 用假暴力把真正解拍没了,伤心.Rp有点低 Day -4 信息学考,\(py ...
- CSP 2019游记 & 退役记
扶苏让我记录他AK CSP 的事实 ZAY NB!!! "你不配" 两年半的旅行结束了,我背着满满的行囊下了车,望着毫不犹豫远去的列车,我笑着哭了,笑着翻着我的行囊-- 游记 Da ...
- 【生活】记第一次参加CCF CSP认证
2018年03月18日 CCF CSP认证 三月份的这次csp认证,我之前是没报名的,一来自己还没什么准备,二来去年的那次认证我也没参加,开考前的一个礼拜,从朋友那得知,这次学校团体报名的名额还没报满 ...
- CSP/S 2020 退役记
上一次的AFO记 上上次的AFO记 Day -INF 一条咸鱼的垂死挣扎. RP+=INF Day 0 出发辣. 早上来到机房,带上了准备的面包和泡面....然而后来嫌太占地方就没拿...草了. 而且 ...
- CSP J/S 2019受虐记
一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...
- CSP 2019 退役记
声明:博主不会时空穿越,也没有造成恐慌,不应禁赛三年 Day0 上午:打板子 Polya定理; exkmp; exbsgs; 乘法逆元; 矩阵快速幂; 扫描线; ST表; excrt; Dirichl ...
- CSP vs Actor Go vs Erlang
源于从Erlang到Go的一些思维碰撞,就像当初从C++到Erlang一样,整理下来记于此. Actor Actor模型,又叫参与者模型,其”一切皆参与者(actor)”的理念与面向对象编程的“一切皆 ...
- 2019.10.26 CSP%您赛第三场
\(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(ligh ...
- CSP-J&S2019前颓废记
说了是颓废记,就是颓废记,因为真的很颓废...... 2018年12月 我看懂了<啊哈算法>(仅仅是看懂,并没有完全学会,只看得懂,却不会敲) 插曲:八上期末考试 我们老师阻挠我继续学OI ...
- CSP2019滚粗记
CSP2019滚粗记 从不拖更 Day -inf 考完月考才停课\kel,然后月考又被吊打了. Day -1 和左边的\({\text L}\color{red} {\text{ongge}}\)右边 ...
随机推荐
- (数据科学学习手札142)dill:Python中增强版的pickle
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,相信不少读者朋友们都在Pyth ...
- 【设计模式】Java设计模式 - 模板模式
Java设计模式 - 模板模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...
- Call to undefined function think\captcha\imagettftext()
sudo apt install libjpeg62-turbo-dev libfreetype6-dev -y su -c "docker-php-ext-configure gd --e ...
- 依赖项安全检测新利器:Scorecard API
Scorecard 是 OpenSSF 旗下的开源项目,用于评估开源软件风险,本文由该项目的主要贡献者 Naveen 撰写. 现代软件是建立在数百个甚至数千个第三方开源组件之上的,这些通常被称为依赖项 ...
- 使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步
转载自:https://www.bilibili.com/read/cv16835328?spm_id_from=333.999.0.0 0x00 前言简述 描述:由于个人家里的NAS以及公司团队对私 ...
- ProxySQL 全局变量详解
转载自:https://www.jianshu.com/p/b9d2a09d80e2 全局变量概述 ProxySQL的行为可以通过全局变量来调整.有两种配置方式: 在runtime下,使用admin结 ...
- ProxySQL(1):简介和安装
文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278818.html ProxySQL有两个版本:官方版和percona版,percona版是在官方版的基础 ...
- Portainer安装,配置自定义镜像仓库拉取镜像
Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...
- Springboot 之 Mybatis-plus 多数据源
简介 Mybatis-puls 多数据源的使用,采用的是官方提供的dynamic-datasource-spring-boot-starter包的 @DS 注解,具体可以参考官网: https://g ...
- Python与Windows桌面
Python更换windows桌面 目录 Python更换windows桌面 前言 准备工作 代码 效果展示 Tips-如何更有仪式感 前言 每天下班,有时候会留下一些事情需要明天更进 为了防止忘记, ...