news 2026/9/9 4:27:29

CSP-S 2022策略游戏 题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSP-S 2022策略游戏 题解

题目大意

给定数组 A 长度 n,数组 B 长度 m,矩阵C{i,j}=Ai*Bj。
每轮查询给出l1,r1,l2,r2:
小L选x[l1,r1]
小Q看到x之后选y[l2,r2]
小L希望得分 C{x,y}尽可能大
小Q希望得分尽可能小
两人都采取最优策略,求最终得分。

暴力核心思路

小 L 选定一个Ax,小 Q 一定会选对自己最有利的 y:
如果Ax>=0:乘积要尽量小 → Q 选 B 区间最小值Bmin,得分AxBmin
如果Ax<0:负数乘大数会更小 → Q 选 B 区间最大值Bmax,得分Ax
Bmax
小 L 知道 Q 会这么操作,所以小 L 遍历 A 区间里每一个元素,算出上面对应的得分,取最大值,就是这一轮答案。

暴力代码

#include<bits/stdc++.h>usingnamespacestd;longlongn,m,q;longlonga[1005],b[1005];intmain(){cin>>n>>m>>q;for(inti=1;i<=n;i++){cin>>a[i];}for(inti=1;i<=m;i++){cin>>b[i];}while(q--){intl1,l2,r1,r2;cin>>l1>>r1>>l2>>r2;longlongmaxn=INT_MIN,minn=INT_MAX;for(inti=l1;i<=r1;i++){maxn=max(maxn,a[i]);}for(inti=l2;i<=r2;i++){minn=min(minn,b[i]);}cout<<maxn*minn<<endl;}return0;}

60分思路

每次查询循环扫 A 区间、B 区间。
手动分类讨论正负情况,拿区间的极值做乘法,直接算出答案。
变量含义
maxaz/minaz:A 区间正数的最大、最小
maxaf/minaf:A 区间负数的最大、最小
maxbz/minbz:B 区间正数的最大、最小
maxbf/minbf:B 区间负数的最大、最小
typea
1:A 区间只有正数
2:A 区间只有负数
3:A 区间既有正数又有负数
typea0标记 A 区间有没有 0;typeb0标记 B 区间有没有 0

在这里插入代码片#include<bits/stdc++.h>usingnamespacestd;longlongn,m,q,a[1005],b[1005];longlongcheck(intl1,intr1,intl2,intr2){inttypea0=0,typeb0=0;inttypea=0,typeb=0;longlongmaxaz=0,minaz=1e17,maxaf=-1e17,minaf=0;longlongmaxbz=0,minbz=1e17,maxbf=-1e17,minbf=0;longlongans=0;for(inti=l1;i<=r1;i++){if(a[i]<0){maxaf=max(maxaf,a[i]);minaf=min(minaf,a[i]);}elseif(a[i]>0){maxaz=max(maxaz,a[i]);minaz=min(minaz,a[i]);}elsetypea0=1;if(typea==3)continue;if(a[i]>0&&typea==2)typea=3;elseif(a[i]>0&&typea==0)typea=1;elseif(a[i]<0&&typea==0)typea=2;elseif(a[i]<0&&typea==1)typea=3;}for(inti=l2;i<=r2;i++){if(b[i]<0){maxbf=max(maxbf,b[i]);minbf=min(minbf,b[i]);}elseif(b[i]>0){maxbz=max(maxbz,b[i]);minbz=min(minbz,b[i]);}elsetypeb0=1;if(typeb==3)continue;if(b[i]>0&&typeb==2)typeb=3;elseif(b[i]>0&&typeb==0)typeb=1;elseif(b[i]<0&&typeb==0)typeb=2;elseif(b[i]<0&&typeb==1)typeb=3;}if(typea==1){if(typeb==1)ans=maxaz*minbz;elseif(typeb==2)ans=minaz*minbf;elseans=minaz*minbf;}elseif(typea==2){if(typeb==1)ans=maxaf*maxbz;elseif(typeb==2)ans=minaf*maxbf;elseans=maxaf*maxbz;}else{if(typeb==1)ans=maxaz*minbz;elseif(typeb==2)ans=minaf*maxbf;elseans=max(minaz*minbf,maxaf*maxbz);}if(typea0)ans=max(ans,0ll);if(typeb0)ans=min(ans,0ll);returnans;}intmain(){cin>>n>>m>>q;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=m;i++)cin>>b[i];while(q--){intl1,r1,l2,r2;cin>>l1>>r1>>l2>>r2;cout<<check(l1,r1,l2,r2)<<endl;}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 15:31:12

基于ESP32自制智能卷帘:硬件、固件与Home Assistant接入全攻略

我之前在给卧室装电动卷帘时&#xff0c;纠结了很久&#xff1a;成品智能窗帘价格偏高&#xff0c;协议大多封闭&#xff0c;很难接入自己正在用的智能家居系统&#xff1b;自己做又担心电机选型、行程控制、限位保护这些细节踩坑。后来干脆花了两周时间&#xff0c;基于 ESP32…

作者头像 李华
网站建设 2026/8/31 5:15:14

YOLOv26-CoordAtt 道路积水检测全链路工程实战|2699 张 VOCYOLO 双标注数据集从训练到城市防汛落地

目录 一、研究背景与行业应用需求 二、道路积水数据集完整基础信息与检测难点 2.1 数据集基础参数 2.2 路面积水四大固有识别难点 三、YOLOv26-CoordAtt 模型架构与标准化训练配置 3.1 改进模型适配积水场景核心优势 3.2 完整标准化训练参数 3.2.1 硬件与尺度基础配置 …

作者头像 李华
网站建设 2026/8/31 0:34:45

微软叫停Tokenmaxxing:API预算与Token消耗的合规治理指南

微软叫停 Tokenmaxxing&#xff1a;API 预算卡死背后的技术真相与合规使用指南 最近开发者圈子里讨论最多的一个话题&#xff0c;就是微软对 Tokenmaxxing 动了刀。简单说&#xff0c;这是一类通过极端手段压榨 Token 使用效率、绕过预算限制的做法&#xff0c;已经被微软明确叫…

作者头像 李华
网站建设 2026/8/30 12:00:05

多线程里的 shared_ptr、引用和捕获线程安全注意点

多线程里的 shared_ptr、引用和捕获线程安全注意点 引用计数本身是原子的&#xff0c;但指针变量、引用别名、lambda 捕获&#xff0c;都可能单独踩坑。本文说明什么是安全的、什么必须加锁、捕获时该拷贝还是引用。 1. std::shared_ptr<T> 一个 std::shared_ptr<T>…

作者头像 李华
网站建设 2026/8/31 5:20:53

C++26容器std::hive深度解析:性能、内存布局与选型指南

如果只盯着“std::hive 比 std::vector 快多少”这个问题&#xff0c;你大概率会得到错误结论。 先纠正一个细节&#xff1a;标题里的 std:hive 是手误&#xff0c;正确写法是 std::hive &#xff0c;它是 C26 标准库中一个等待了很久的容器提案&#xff0c;前身是开源社区…

作者头像 李华
网站建设 2026/8/30 19:20:05

猫狗检测实战:基于YOLO与VOC格式数据集的模型训练与部署指南

简介&#xff1a;目标检测是计算机视觉的核心任务之一&#xff0c;旨在识别图像中特定物体的位置与类别。其原理通常基于深度学习模型&#xff0c;通过卷积神经网络提取特征&#xff0c;并利用边界框回归与分类头实现定位与识别。这项技术在安防监控、自动驾驶、智能零售等领域…

作者头像 李华