【题解】洛谷P3514:LIZ-Lollipop

news/2024/11/14 12:57:31/文章来源:https://www.cnblogs.com/sadlin/p/18543110

P3514 [POI2011] LIZ-Lollipop

很好的思维题,也是一个结论题,只有1、2的性质很重要,结论:当存在 \(k(k>2)\),必然可以得到 \(k-2\)

得到 \(k\) 的区间 \(l_k\)\(r_k\) 必然会有 \(a_{l_k}=2\)\(a_{r_k}=2\)\(a_{l_k}=a_{r_k}=1\),这样无论如何都能减去一段或两端得到 \(k-2\)

这样如果一个数存在,那比他小的所有奇偶性相同的数就都存在,我们就可以求出最大的奇数偶数来判断是否合法。

求答案区间,我们可以在求最大奇偶数时记录存在该数的区间,然后通过逆推式求出每个存在的数的区间。

#include <bits/stdc++.h>
#define int long long
#define re register 
const int N=2e6+10;
using namespace std;int n,m,a[N],sum[N],mx[4];
int l[N];
int r[N];void up(int k,int x,int y){if(k>mx[k%2]){mx[k%2]=k;l[k]=x;r[k]=y;}
}void down(int &l,int &r,int pl,int pr){if(pl==0&&pr==0){return;}l=pl;r=pr;if(a[pl]==2){l++;}else if(a[pr]==2){r--;}else{l++;r--;}
}signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);cin>>n>>m;for(int i=1;i<=n;i++){char c;cin>>c;a[i]=(c=='T')?2:1;sum[i]=sum[i-1]+a[i];}for(int i=1;i<=n;i++){up(sum[i]-sum[0],1,i);up(sum[n]-sum[i],i+1,n);}up(sum[n]-sum[0],1,n);for(int i=2*n;i>=1;i--){down(l[i],r[i],l[i+2],r[i+2]);}for(int i=1;i<=m;i++){int k;cin>>k;if(k>mx[k%2]){cout<<"NIE\n";continue;}cout<<l[k]<<" "<<r[k]<<"\n";}return 0;
}

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

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

相关文章

AllPairs工具助力正交表测试用例设计

AllPairs工具助力正交表测试用例设计 正交表法是一种高效的测试方法,特别适用于软件测试中需要处理多个控件及其多种取值组合的情况。以下是对正交表法的详细解释: 一、正交表法概述 正交表法是一种利用正交表来设计测试用例的方法,旨在通过较少的测试次数达到较高的测试覆盖…

SAM4MLLM:结合多模态大型语言模型和SAM实现高精度引用表达分割 | ECCV24

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: SAM4MLLM: Enhance Multi-Modal Large Language Model for Referring Expression Segmentation论文地址:https://arxiv.org/abs/2409.10542 论文代码:https://github.com/AI-Application-and-Integration-Lab/SAM4MLLM…

信息时代的安全堡垒:500强企业数据安全传输案例解析

数据安全传输,这个是数据安全里一个比较细分的领域,但是包括的传输场景也是很多的,比如隔离网之间的跨网文件传输、企业内外部之间的文件安全外发、总分支之间的数据传输分发、信创环境下的高性能传输、机台等设备的数据采集传输、业务系统之间的自动化传输同步等等。 每家企…

Ubuntu 22.04 LTS 离线安装 Harbor v2.11 (附https认证,Trivy镜像扫描)

Harbor 介绍Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全、可信赖的仓库来存储和管理Docker镜像。Harbor翻译为中文名称为"庇护;居住;"。可以理解为是Docker镜像的"居住环境"或者是镜像的"庇护所"。Harbor最初由VMware公司开…

reposync离线yum源

系统:open Euler 22.03-sp3-x86 reposync ;createrepo 1、配置好yum源 2、下载 下载指定repo到指定目录reposync --repoid EPOL -p /data/EPOL 3、制作镜像仓库cd EPOLcreaterepo .

叮咚!您有一份跨网域跨安全域文件传输方案待查收

跨网域跨安全域文件传输,在很多企业和机构里面,都会存在这样的场景的,比如企业内部会用网络隔离的方式,划分不同的安全域和网段,或者有些机构还有不同的分支机构,就会有不同地域的文件传输需求。 跨网域跨安全域传输的典型应用场景 跨网域跨安全域文件传输的典型应用场景…

rtthread源码completion.c no such file or dir

20241113 从gitee下载rtthread源码,bsp--->stm32--->stm32f407-atk-explorer直接编译报错,如下从百度网盘下载rtthread源码,bsp--->stm32--->stm32f407-atk-explorer编译正常,无错误如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为…

团队作业4——项目冲刺-3

团队作业4——项目冲刺-3信息项 内容课程名称 广工计院计科34班软工作业要求位置 作业要求作业目标 小飞棍团队对需求改进和系统设计进行讨论GitHub链接 GitHub一、团队简介队名:小飞棍队团队成员:姓名 学号罗振烘(组长) 3122004748庄崇立 3122004633李响 3121002802何昌洲…

宝塔如何修改网站名,如何在宝塔面板中修改网站名称

修改网站名称可以提升品牌识别度。以下是详细的步骤:登录宝塔面板:打开浏览器,输入宝塔面板的地址,例如 http://yourserverip:8888。 输入用户名和密码,点击“登录”。进入网站管理:登录后,点击左侧菜单栏中的“网站”。 在网站列表中找到需要修改名称的网站。修改网站名…

揭秘!Vue3.5响应式重构如何让内存占用减少56%

前言 Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成: 双向链表和 版本计数。我们在前两篇文章中我们已经讲过了 双向链表和 版本计数,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。 欧阳年底也要毕业了,加入欧阳的面试交流群(分享内推信息…

11.14

[实验任务一]:计算机组装 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 实验要求:画出对应的类图;提交源代码;// Computer.java package builder;public class C…