CF2018B

news/2025/10/27 22:39:15/文章来源:https://www.cnblogs.com/aswed112/p/19170360

CF2018B Speedbreaker
被*1900狠狠杀掉了麻麻,S组即将来临我真的没救了。。。。
考虑无解的情况,对于每一个时间 \(t\),找到能够包含所有 \(a_i\) 满足 \(a_i\leq t\) 的区间 \([l_t,r_t]\),意思就是在 \(t\) 的时间里必须把这一段区间全走完才能保证走完了每一个 \(a_i\leq t\),那么如果这样的一段区间 \(r_t-l_t+1>t\) 则绝壁不可以走完,此时答案为0。
考虑何时可以有答案,假如从某一个点 \(x\) 出发,那么相当于使得 \(a_x=1\),因为点 \(x\) 绝壁包含在每一个 \(t\) 的区间内。那么就要对于每一个 \(t\) 满足把 \(x\) 算进去以后的长度仍然满足条件,有三种情况即 \(x\) 在左在右在中间。

  • 在左:满足 \(r_t-x+1\leq t\longrightarrow r_t-t+1\leq x\)
  • 在右:满足 \(x-l_t+1\leq t\longrightarrow x\leq l_t+t-1\)
  • 中间:自动满足
    综合一下直接得到 \(x\) 的取值必定在区间 \([r_t-t+1,l_t+t-1]\) 之间,对于每一个 \(t\) 的该区间取一下交集即可。
    怎么做!!!!
    直接按照 \(a_i\) 从小到大的顺序访问然后扩展区间然后算出来以后交一下即可。
    贴代码!!!!
#include <bits/stdc++.h>
using namespace std;
int n,t,a[200010],id[200010],pl,pr,ansl,ansr;
bool cmp(int x,int y)
{return a[x] < a[y];
}
int main()
{cin >> t;while(t--){cin >> n; bool chk = 0; ansl = 1; ansr = n;for (int i = 1;i <= n ;i++) cin >> a[i];for (int i = 1;i <= n;i++) id[i] = i;sort(id+1,id+n+1,cmp);pl = pr = id[1];for (int i = 1,cnt = 1;i <= n;i++){bool f = 0;while(cnt <= n && a[id[cnt]] <= i){pl = min(id[cnt],pl); pr = max(id[cnt],pr);if (a[id[cnt]] == i) f = 1; cnt++;}if (!f) continue;if (pr-pl+1 > i){chk = 1;break;}ansl = max(ansl,pr-i+1); ansr = min(ansr,pl+i-1);}if (ansl > ansr) chk = 1;if (chk) cout << "0\n";else cout << ansr-ansl+1 << "\n";}return 0;
}

CSP-S第二轮决一死战了决一死战
愿星族与我同在
May Star Clan be with me

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

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

相关文章

10/27

太难了,要搭建一个真正的项目了,昨天英语作业系统故障没交上,下次交早点

第7天(中等题 滑动窗口)

打卡第七天 2道中等题class Solution { public:int equalSubstring(string s, string t, int maxCost) {int n = s.length();vector<int> diff(n, 0);//创建数组存储s和t对应位置字符的ASCII码差值for (int i = …

C++ 获取 const char* 字符串长度

C++ 获取 const char* 字符串长度C++ 获取 const char* 字符串长度 获取字符串长度的方法有哪些。 strlen strlen.c 源码如下 size_t strlen(const char *str) {const char *s;for (s = str; *s; ++s);return (s - str…

20251027——读后感2

面对多变的需求,可先做可丢弃的原型。比如要开发一个新的电商APP,先快速做个包含核心功能的简易原型,让用户试用后反馈,再基于此开发正式系统,避免在错误需求上浪费时间,就像盖房子先搭个简易框架看结构是否合理…

window[-INPUT-] 还有哪些属性或方法

在PySimpleGUI中,除了.update()方法外,window["-INPUT-"]等元素对象还支持以下属性和方法,按功能分类整理如下: 核心方法.get()功能:获取元素的当前值(如输入框内容、下拉菜单选中项等)。 示例:inpu…

DeepSeek-DSA讲解

1. MQA: Multi-Query Attention 多查询注意力机制 (MQA) 是 Transformer 中使用的传统多头自注意力机制(MHA)的一种变体。在传统的多头注意力机制中,每个注意力头都使用自己的一组查询、键和值,这可能需要大量计算,…

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘问题简述: AttributeError: tensorrt.tensorrt.Builder object has no attribute build_cuda_engine 原因: tensorrt版本大于…

C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

Python write to file and read from file

import uuid import datetime import timedef get_uuid_time():return (f"{uuid.uuid4().hex}_____{datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")}")def get_time():return (f"{date…

Experiment3

Task1 #include <stdio.h> char score_to_grade(int score); // 函数声明 int main() {int score;char grade;while(scanf("%d", &score) != EOF) {grade = score_to_grade(score); // 函数调用pr…

20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 根据本周所学回答问题: (1)杀软是如何检测出恶意代码的? 杀软检测恶意代码的核心逻辑是通过 “识别恶意特征或行为”,将恶意代码的特征值…

CF995F Cowmpany Cowmpensation

给定一棵以 \(1\) 为根的 \(n\) 个节点的树,第 \(i\) 个点的父亲为 \(p_i\)。你需要给第 \(i\) 个节点赋予一个整数点权 \(a_i\),需要满足下面的性质:\(\forall i \in [1,n],a_i \in [1,D]\)。\(\forall i \in [2,n…

背诵

可能是到了中年期了,总是会盯着一个地方发呆陷入沉思,或许这就是成熟吧我家猫会后空翻,跟我回家瞧瞧吧

关系运算符逻辑运算符

一.关系运算符 1.关系运算符包括<,>,>=,<=,,!= 比较这几个:最后两个低于起那几个 *由于赋值运算在整个排序中位于倒数第二的位置所以后两个排在低位 2.和!=不要输入实数 二.逻辑运算符 1.逻辑运算符包…

WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc

Install-Package Prism.Wpf Install-Package Prism.DryIOC#region Interfaces public interface IIDService {int GetID(); }public class IDService : IIDService {int idx = 0;public int GetID(){return Interlocke…

20232406 2025-2026-1 《网络与系统攻防技术》实验三实验报告

免杀原理与实践 一、实验内容问题回答: (1)杀软是如何检测出恶意代码的? 签名匹配:最传统的检测方式,杀软维护一个已知恶意软件的签名数据库。当扫描文件或系统时,杀软会将扫描对象与这些签名进行比对,如果发现…

20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容1.1尝试使用msfvenom中的编码器生成多种类型的后门文件 1.2利用工具对文件进行加壳操作 1.3使用C语言 + shellcode编程 1.4尝试利用免杀技术通过…

MLA原理讲解

多头潜在注意力机制 首先我们来回忆一下大模型生成时一个标准多头注意力机制,首先对于第一个token,它的特征向量为H,通过Query权重矩阵,Key权重矩阵和Value权重矩阵,分别得到这个token的Q向量、K向量和V向量。然后…

LLM什么时候才能输出固定格式

转载原文地址 基于概率统计建模,llm展示了非凡的潜力。但是同样由于token的概率性输出,成为llm落地的一个小绊脚石。这里讨论一下几种常见的让llm规范输出目标格式内容的方法,不清楚当前最新研究进展是否有突破。 万…