Educational Codeforces Round 162 (Rated for Div. 2)(A~D)

A. Moving Chips

分析:先找出区间[l,r],a[l]为1第一次出现,a[r]为1最后一次出现,[l,r]以外的区间不用管。

所以我们要将[l,r]中所有1的区域块练成一块。

经过简单的样例分析发现,假设1的区域t1和区域t2间有x个0,按照最优的走法,只需要x步就能将这两块区域合成一块。

所以问题就转换成[l,r]有多少个0

int a[N];
void solve() {int n; cin >> n;int l = 1, r = n;int f = 0;rep(i, 1, n) {cin >> a[i];if (!f && a[i] == 1) {f = 1; l = i;}if (a[i] == 1) r = i;}int ans = 0;rep(i, 1, n) {if (i >= l && i <= r && a[i] == 0) ans++;}//tans;cout << ans << endl;}

B. Monsters Attack!

分析:

1.当怪物1的坐标是-x,血量为t1,怪物2的坐标是x,血量为t2,那我们其实可以把他们当成同一个怪物,因为这两个怪物的威胁是相同的。所以我们就可以看成,有一个怪物在坐标x,血量为t1+t2

2.我们要优先解决离我们近的怪物,因此要对距离进行排序。我用的是map,用结构体排序也可以。

3.当前离我们最近的怪物t距离为c,假设我们在这c秒都把子弹打到怪物t身上,用一个rest记录怪物当前血量,rest>0就死了,rest<0说明伤害溢出了,没必要把所有伤害都打到这个怪物身上,应该把rest伤害留给下一个“离我们最近的怪物”。

int a[N],b[N];
void solve() {int n, k, cnt = 0; cin >> n >> k;map<int, int> mp;rep(i, 1, n) cin >> a[i];rep(i, 1, n) {cin >> b[i];if (b[i] < 0) b[i] = -b[i];mp[b[i]] += a[i];}//tans;int rest = 0;for (auto it : mp) {int c = it.first - cnt;mp[it.first] -= c * k - rest;rest = mp[it.first];if (rest > 0) {cout << "NO" << endl;return;}cnt += c;}cout << "YES" << endl;}

C. Find B

分析:

对于1,我们必须要+1(题意说了必须正整数),对于大于1的数,我们可以-1。

[l,r]的长度为len,有x个数为1,len-x个数大于1。我们必须进行x次+1操作,当这len-x个数可以进行x次-1操作的话,就是YES

我们要以O(1)的时间复杂度查询到[l,r]中1的个数,所以要预处理(以类似前缀和的方法处理)。

int n, q;
int a[N], b[N], c[N];
void solve() {cin >> n >> q;rep(i, 1, n) {cin >> a[i];b[i] = b[i - 1] + a[i];c[i] = c[i - 1] + (a[i] == 1);}while (q--) {int l, r; cin >> l >> r;//tans;int len = r - l + 1;int cnt1 = c[r] - c[l - 1];int mmin = b[r] - b[l - 1] - cnt1 - (len - cnt1);if (mmin < cnt1 || len == 1) cout << "NO" << endl;else cout << "YES" << endl;}}

D. Slimes

分析:前缀和,后缀和,二分我都想到了,公式也推出来了,但有这样的特殊情况{2,2,2,2},不知道怎么处理。

因为前缀和与后缀和的作用是我们可以查新,区间[l,r]的史莱姆经过互相吞噬后的大小,但如果区间[l,r]是{2,2,2,2},那么这个区间的史莱姆就不能相互吞噬(因为只有严格大于的史莱姆才能吞噬)。换言之,只要[l,r]区间的史莱姆不是全部相同的,那么[l,r]的史莱姆就可以经过相互吞噬,变成一个史莱姆。

看了题解,知道了要设pl和sl数组,来记录同一个数字连续出现了几次。

int pre[N], suf[N],a[N],pl[N],sl[N];
void solve() {int n; cin >> n;rep(i, 1, n) {cin >> a[i];pre[i] = pre[i - 1] + a[i];pl[i] = 1;if (a[i] == a[i - 1]) pl[i] += pl[i - 1];}for (int i = n; i >= 1; i--) {suf[i] = suf[i + 1] + a[i];sl[i] = 1;if (a[i] == a[i + 1]) sl[i] += sl[i + 1];}//sort(suf + 1, suf + 1 + n);//tans;rep(i, 1, n) {if (i != 1) cout << " ";int k1 = inf, k2 = inf;if(a[i-1]>a[i]||a[i+1]>a[i]){cout<<1;continue;}//往左找int l = 1, r = i;while (l <= r) {int mid = (l + r) / 2;if (suf[mid] > a[i] + suf[i] && mid+sl[mid]<i) {l = mid + 1;k1 = mid;}else {r = mid - 1;}}if (k1 != inf) k1 = i - k1;//往右找l = i + 1, r = n;while (l <= r) {int mid = (l + r) / 2;if (mid - pl[mid] > i && pre[mid] - pre[i] > a[i]) {r = mid - 1, k2 = mid;}else l = mid + 1;}if (k2 != inf) k2 = k2 - i;int ans = min(k1, k2);if (ans == inf) ans = -1;cout << ans;}cout << endl;for (ll i = 1; i <= n; ++i)a[i] = pre[i] = suf[i] = pl[i] = sl[i] = 0;}

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

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

相关文章

springboot+vue实现微信公众号扫码登录

通常在个人网站中&#xff0c;都会有各种第三方登录&#xff0c;其中微信登录需要认证才能使用&#xff0c;导致个人开发者不能进行使用此功能&#xff0c;但是我们可以使用微信公众号回复特定验证码来进行登录操作。 微信关键词处理 微信公众号关键词自动回复&#xff0c;具体…

第3.5章:StarRocks数据导入——Broker Load

注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Broker Load导入机制 一、概述 Broker Load导入方式支持从HDFS类的外部存储系统&#xff08;例如&#xff1a;HDFS、阿里OSS、腾讯COS、华为云OBS等&#xff09;&#xff0c;支持Parquet、ORC、CSV、及 JSON 四种文件格式&a…

c#程序,oracle使用Devart驱动解决第第三方库是us7ascii,数据乱码的问题

最近做项目&#xff0c;要跟对方系统的库进行读写&#xff0c;结果发现对方采用的是oracle的us7ascii编码&#xff0c;我们系统默认采用的是ZHS16GBK&#xff0c;导致我们客户端读取和写入对方库的数据都是乱码&#xff0c;搜索网上&#xff0c;发现需要采用独立的oracle驱动去…

【GPTs分享】GPTs分享之Write For Me

Write For Me 是一个专门定制的GPT版本&#xff0c;旨在为用户提供高质量的文本内容创作服务。它适用于各种写作需求&#xff0c;从商业计划、学术文章到创意故事等。下面是从简介、主要功能、使用案例、优点和局限性几个方面对Write For Me 的详细介绍。 简介 Write For Me …

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …

常用实验室器皿耐硝酸盐酸进口PFA材质容量瓶螺纹盖密封效果好

PFA容量瓶规格参考&#xff1a;10ml、25ml、50ml、100ml、250ml、500ml、1000ml。 别名可溶性聚四氟乙烯容量瓶、特氟龙容量瓶。常用于ICP-MS、ICP-OES等痕量分析以及同位素分析等实验&#xff0c;也可在地质、电子化学品、半导体分析测试、疾控中心、制药厂、环境检测中心等机…

蜣螂优化算法DBO求解不闭合SD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

一、蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09; 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得…

YOLOv9-Openvino和ONNXRuntime推理【CPU】

1 环境&#xff1a; CPU&#xff1a;i5-12500 Python&#xff1a;3.8.18 2 安装Openvino和ONNXRuntime 2.1 Openvino简介 Openvino是由Intel开发的专门用于优化和部署人工智能推理的半开源的工具包&#xff0c;主要用于对深度推理做优化。 Openvino内部集成了Opencv、Tens…

开源大语言模型作为 LangChain 智能体

概要 开源大型语言模型 (LLMs) 现已达到一种性能水平&#xff0c;使它们适合作为推动智能体工作流的推理引擎: Mixtral 甚至在我们的基准测试中 超过了 GPT-3.5&#xff0c;并且通过微调&#xff0c;其性能可以轻易的得到进一步增强。 引言 针对 因果语言建模 训练的大型语言模…

使用 npm/yarn 等命令的时候会,为什么会发生 Error: certificate has expired

缘起 昨天&#xff0c;我写了一篇文章&#xff0c;介绍如何使用项目模板&#xff0c;构建一个 Electron 项目的脚手架&#xff0c;我发现我自己在本地无法运行成功&#xff0c;出现了错误。 ✖ Failed to install modules: ["electron-forge/plugin-vite^7.2.0",&qu…

golang学习3,golang 项目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆红解决

C# 通过共享内存调用C++ 算法

需求&#xff1a; C#程序调用 C开发的dll. 一种C# 程序调用c 算法方案_算法怎么被c#调用-CSDN博客 上回书说到&#xff0c;将c算法封装为dll 插件&#xff0c;c加载后&#xff0c;暴露C风格接口&#xff0c;然后供C#调用。但是这样有几个问题&#xff1a; 1&#xff0c;一是…

详解POCV/SOCV的时序报告

​POCV/SOCV的时序报告中有如下变量&#xff1a; Mean: 高斯分布中的μ值&#xff08;平均值&#xff09; Sensit: sensitivity&#xff0c;也就是1个Sigma的值&#xff1b; Corner: Sigma边界的最差值 cell的delay Delay mean N * Delay sigma; cell 的Transition Sl…

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson 16 At the Shoe Store 在鞋店

《美语从头学初级入门篇》 注意&#xff1a;被 删除线 划掉的不一定不正确&#xff0c;只是不是标准答案。 文章目录 Lesson 16 At the Shoe Store 在鞋店对话A对话B笔记会话A会话B替换 Lesson 16 At the Shoe Store 在鞋店 对话A A: Do you have these shoes in size 8? B:…

备战蓝桥杯---树形DP基础1

我们先来看几个比较简单的例子来引入&#xff1a; 我们令f[i]表示以i为根节点的子树大小&#xff0c;易得状态转移方程为&#xff1a; f[i]1f[son1]....f[soni]; 我们用DFS即可&#xff0c;下面是大致的模板&#xff1a; 让我们来看看几道题吧&#xff1a; 1.贪心树形DPDFS&…

多输入时序预测|GWO-CNN-LSTM|灰狼算法优化的卷积-长短期神经网络时序预测(Matlab)

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 灰狼优化算法&#xff1a; 卷积神经网络-长短期记忆网络&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容…

【教程】 iOS混淆加固原理篇

目录 摘要 引言 正文 1. 加固的缘由 2. 编译过程 3. 加固类型 1) 字符串混淆 2) 类名、方法名混淆 3) 程序结构混淆加密 4) 反调试、反注入等一些主动保护策略 4. 逆向工具 5. OLLVM 6. IPA guard 7. 代码虚拟化 总结 摘要 本文介绍了iOS应用程序混淆加固的缘由…

oracle官网下载早期jdk版本

Java Downloads | Oracle JDK Builds from Oracle 以上压缩版&#xff0c;以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

STM32--低功耗模式详解

一、PWR简介 正常模式与睡眠模式耗电是mA级&#xff0c;停机模式与待机模式是uA级。 二、电源框图 供电区域有三处&#xff0c;分别是模拟部分供电&#xff08;VDDA&#xff09;&#xff0c;数字部分供电&#xff0c;包括VDD供电区域和1.8V供电区域&#xff0c;后备供电&…