Codeforces Round 1026 (Div. 2) C. Racing

news2025/6/5 3:09:08

Codeforces Round 1026 (Div. 2) C. Racing

题目

In 2077, a sport called hobby-droning is gaining popularity among robots.

You already have a drone, and you want to win. For this, your drone needs to fly through a course with n n n obstacles.

The i i i-th obstacle is defined by two numbers l i , r i l_i, r_i li,ri. Let the height of your drone at the i i i-th obstacle be h i h_i hi. Then the drone passes through this obstacle if l i ≤ h i ≤ r i l_i \le h_i \le r_i lihiri. Initially, the drone is on the ground, meaning h 0 = 0 h_0 = 0 h0=0.

The flight program for the drone is represented by an array d 1 , d 2 , … , d n d_1, d_2, \ldots, d_n d1,d2,,dn, where h i − h i − 1 = d i h_{i} - h_{i-1} = d_i hihi1=di, and 0 ≤ d i ≤ 1 0 \leq d_i \leq 1 0di1. This means that your drone either does not change height between obstacles or rises by 1 1 1. You already have a flight program, but some d i d_i di in it are unknown and marked as − 1 -1 1. Replace the unknown d i d_i di with numbers 0 0 0 and 1 1 1 to create a flight program that passes through the entire obstacle course, or report that it is impossible.

Input

Each test contains multiple test cases. The first line contains the number of test cases t t t ( 1 ≤ t ≤ 10 4 1 \le t \le 10^4 1t104). The description of the test cases follows.

In the first line of each test case, an integer n n n ( 1 ≤ n ≤ 2 ⋅ 10 5 ) 1 \le n \le 2 \cdot 10^5) 1n2105) is given — the size of the array d d d.

In the second line of each test case, there are n n n integers d 1 , d 2 , … , d n d_1, d_2, \ldots, d_n d1,d2,,dn ( − 1 ≤ d i ≤ 1 -1 \leq d_i \leq 1 1di1) — the elements of the array d d d. d i = − 1 d_i = -1 di=1 means that this d i d_i di is unknown to you.

Next, there are n n n lines containing 2 2 2 integers l i , r i l_i,r_i li,ri ( 0 ≤ l i ≤ r i ≤ n 0\leq l_i\leq r_i\leq n 0lirin) — descriptions of the obstacles.

It is guaranteed that the sum of n n n across all test cases does not exceed 2 ⋅ 10 5 2\cdot 10^5 2105.

Output

For each test case, output n n n integers d 1 , d 2 , … , d n d_1,d_2,\ldots,d_n d1,d2,,dn, if it is possible to correctly restore the array d d d, or − 1 -1 1 if it is not possible.

题目解析及思路

题目要求按照一个动作序列执行操作,判断是否能通过所有障碍物

其中**-1代表不确定,可以替换为0或1**,输出最终的可行动作序列d

输入样例

4
0 -1 -1 1
0 4
1 2
2 4
1 4

输出样例

0 1 1 1 

从头往后开始遍历,遇到d[i]=0或1直接把当前高度+d[i],遇到-1就先记录在一个数组,需要++时就取出确定为1,不需要++的时候就取出确定为0

代码

#include <bits/stdc++.h>
#define int64 long long
#define endl '\n'
using namespace std;
typedef pair<int,int> pii;
void solve(){
    int n;
    cin>>n;
    vector<int> d(n);
    for(int &x : d) cin>>x;
    vector<pii> a(n);
    for(pii &p : a) cin>>p.first>>p.second;
    
    int cur = 0;
    vector<int> last;
    for(int i=0;i<n;i++){
        int l = a[i].first,r = a[i].second;
        //执行操作
        if(d[i] != -1){
            cur += d[i];
        }
        //加入到数组
        else{
            last.push_back(i);
        }
        //高度不够时将以前存的-1用掉
        while(cur < l){
            if(last.empty()){
                cout<<"-1"<<endl;
                return;
            }
            d[last.back()] = 1;
            cur ++;
            last.pop_back();
        }
        //高度足够时,以前存的部分-1已经可以确定为0
        while(cur + last.size() > r){
            if(last.empty()){
                cout<<"-1"<<endl;
                return;
            }
            d[last.back()] = 0;
            last.pop_back();
        }
    }
    //还可能剩-1,全都取到0就行
    for(int v:d){
        cout<<max(0,v)<<" ";
    }
    cout<<endl;
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin>>t;
    while(t--){
        solve();
    }
}

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

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

相关文章

Python数学可视化——显函数、隐函数及复杂曲线的交互式绘图技术

Python数学可视化——显函数、隐函数及复杂曲线的交互式绘图技术 一、引言 在科学计算和数据分析中&#xff0c;函数与方程的可视化是理解数学关系和物理现象的重要工具。本文基于Python的Tkinter和Matplotlib库&#xff0c;实现一个功能完善的函数与方程可视化工具&#xff…

代码随想录打卡|Day51 图论(dijkstra(堆优化版)精讲、Bellman_ford 算法精讲)

图论part09 dijkstra&#xff08;堆优化版&#xff09;精讲(不熟悉) 代码随想录链接 题目链接 import java.util.*;class Edge {int to; // 邻接顶点int val; // 边的权重Edge(int to, int val) {this.to to;this.val val;} }class MyComparison implements Comparator<…

AI入门——AI大模型、深度学习、机器学习总结

以下是对AI深度学习、机器学习相关核心技术的总结与拓展&#xff0c;结合技术演进逻辑与前沿趋势&#xff0c;以全新视角呈现关键知识点 一、深度学习&#xff1a;从感知到认知的技术革命 核心突破&#xff1a;自动化特征工程的范式变革 深度学习通过多层神经网络架构&#x…

【AI论文】论文转海报:迈向从科学论文到多模态海报的自动化生成

摘要&#xff1a;学术海报生成是科学交流中一项关键但具有挑战性的任务&#xff0c;需要将长上下文交织的文档压缩成单一的、视觉上连贯的页面。 为了应对这一挑战&#xff0c;我们引入了第一个用于海报生成的基准和度量套件&#xff0c;该套件将最近的会议论文与作者设计的海报…

智慧零工平台前端开发实战:从uni-app到跨平台应用

智慧零工平台前端开发实战:从uni-app到跨平台应用 本文将详细介绍我如何使用uni-app框架开发一个支持微信小程序和H5的零工平台前端应用,包含技术选型、架构设计、核心功能实现及部署经验。 前言 在当今移动互联网时代,跨平台开发已成为提高开发效率的重要手段。本次我选择…

【Linux】基础文件IO

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;Linux 前言 无论是日常使用还是系统管理&#xff0c;文件是Linux系统中最核心的概念之一。对于初学者来说&#xff0c;理解文件是如何被创建、读取、写入以及存储…

ESP-IDF 离线安装——同时存在多个版本以及进行版本切换的方法

一、离线安装包的下载方法 ESP-IDF离线安装包下载链接 我下载了下面三个版本进行测试 二、离线安装包的安装方法 1.创建文件夹 创建ESP-IDF文件夹&#xff0c;并为不同版本的IDF分别创建一个文件夹&#xff0c;如下图所示 2.双击离线安装包&#xff08;以5.0版本为例&am…

android 上位机调试软件-安卓串口 com ttl 调试——仙盟创梦IDE

在 Android 开发中&#xff0c;基于com.ttl库的串口调试 Web 编写意义非凡。它打破了硬件与软件之间的壁垒&#xff0c;让 Android 设备能够与外部串口设备通信。对于智能家居、工业控制等领域&#xff0c;这一功能使得手机或平板能成为控制终端&#xff0c;实现远程监控与操作…

python打卡day42

Grad-CAM与Hook函数 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 在深度学习中&#xff0c;我们经常需要查看或修改模型中间层的输出或梯度&#xff0c;但标准的前向传播和反向传播过程通常是一个黑盒&#xff0c;很难直接访问中间层的信息。PyT…

XMOS以全新智能音频及边缘AI技术亮相广州国际专业灯光音响展

全球领先的边缘AI和智能音频解决方案提供商XMOS于5月27-30日亮相第23届广州国际专业灯光、音响展览会&#xff08;prolight sound Guangzhou&#xff0c;以下简称“广州展”&#xff0c;XMOS展位号&#xff1a;5.2A66&#xff09;。在本届展会上&#xff0c;XMOS将展出先进的音…

Playwright 测试框架 - Node.js

🚀超全实战:基于 Playwright + Node.js 的自动化测试项目教程【附源码】 📌 本文适合自动化测试入门者 & 前端测试实战者。从零开始手把手教你搭建一个 Playwright + Node.js 项目,涵盖配置、测试用例编写、运行与调试、报告生成以及实用进阶技巧。建议收藏!👍 �…

机器学习有监督学习sklearn实战二:六种算法对鸢尾花(Iris)数据集进行分类和特征可视化

本项目代码在个人github链接&#xff1a;https://github.com/KLWU07/Machine-learning-Project-practice 六种分类算法分别为逻辑回归LR、线性判别分析LDA、K近邻KNN、决策树CART、朴素贝叶斯NB、支持向量机SVM。 一、项目代码描述 1.数据准备和分析可视化 加载鸢尾花数据集&…

vr中风--数据处理模型搭建与训练2

位置http://localhost:8888/notebooks/Untitled1-Copy1.ipynb # -*- coding: utf-8 -*- """ MUSED-I康复评估系统&#xff08;增强版&#xff09; 包含&#xff1a;多通道sEMG数据增强、混合模型架构、标准化处理 """ import numpy as np impor…

鸿蒙next系统以后会取代安卓吗?

点击上方关注 “终端研发部” 设为“星标”&#xff0c;和你一起掌握更多数据库知识 官方可没说过取代谁谁&#xff0c;三足鼎立不好吗&#xff1f;三分天下&#xff0c;并立共存。 鸿蒙基于Linux&#xff0c;有人说套壳&#xff1b;ios/macos基于Unix&#xff0c;说它ios开源了…

PolyGen:一个用于 3D 网格的自回归生成模型 论文阅读

[2002.10880] PolyGen&#xff1a;一个用于 3D 网格的自回归生成模型 --- [2002.10880] PolyGen: An Autoregressive Generative Model of 3D Meshes 图 2&#xff1a;PolyGen 首先生成网格顶点&#xff08;左侧&#xff09;&#xff0c;然后基于这些顶点生成网格面&#xff0…

系统思考:成长与投资不足

最近认识了一位95后年轻创业者&#xff0c;短短2年时间&#xff0c;他的公司从十几个人发展到几百人&#xff0c;规模迅速扩大。随着团队壮大&#xff0c;用户池也在持续扩大&#xff0c;但令人困惑的是&#xff0c;业绩增长却没有明显提升&#xff0c;甚至人效持续下滑。尽管公…

快手可灵视频V1.6模型API如何接入免费AI开源项目工具

全球领先的视频生成大模型&#xff1a;可灵是首个效果对标 Sora 、面向用户开放的视频生成大模型&#xff0c;目前在国内及国际上均处于领先地位。快手视频生成大模型“可灵”&#xff08;Kling&#xff09;&#xff0c;是全球首个真正用户可用的视频生成大模型&#xff0c;自面…

数学建模期末速成 最短路径

关键词&#xff1a;Dijkstra算法 Floyd算法 例题 已知有6个村庄&#xff0c;各村的小学生人数如表所列&#xff0c;各村庄间的距离如图所示。现在计划建造一所医院和一所小学&#xff0c;问医院应建在哪个村庄才能使最远村庄的人到医院看病所走的路最短&#xff1f;又问小学建…

Java开发经验——阿里巴巴编码规范实践解析7

摘要 本文主要解析了阿里巴巴 Java 开发中的 SQL 编码规范&#xff0c;涉及 SQL 查询优化、索引建立、字符集选择、分页查询处理、外键与存储过程的使用等多个方面&#xff0c;旨在帮助开发者提高代码质量和数据库操作性能&#xff0c;避免常见错误和性能陷阱。 1. 【强制】业…

权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用

科技成果鉴定测试是衡量科研成果技术价值与应用潜力的关键环节&#xff0c;其核心目标在于通过科学验证确保成果的可靠性、创新性和市场适配性。第三方检测机构凭借其独立性、专业性和权威性&#xff0c;成为科技成果鉴定测试的核心支撑主体。本文从测试流程、第三方检测的价值…