Codeforces Round 1020 (Div. 3) A-D
A. Dr. TC
https://codeforces.com/contest/2106/problem/A
题目大意:
对输入字符串每个位置字符依次翻转(1->0 , 0->1)
比如: 101
001 翻转位置1
111 2
100 3
题解:
观察数学特征:ans=n1*(n-1)+n0
t=int(input())for i in range(t):n=int(input())s=input()n1=s.count('1')n0=s.count('0')print(n1*(n-1)+n0)
B. St. Chroma
https://codeforces.com/contest/2106/problem/B
题目大意:
需要构造长为n的数组a,包含0到n-1各一个
然后填涂一个新数组b:从左到右第 i 个位置等于MEX(a[ : i ])
MEX:该序列中第一个未出现的非负整数
现在每个测试案例给n,x,要求b中x的最大可能数
题解:
贪心策略:前面尽快填补0到x-1,然后x得最后出
注意特判:n==x时,按照上面的贪心策略会导致多多余一个元素,正确做法是0到n-1按序填补
t=int(input())
for i in range(t):n,x=map(int,input().split())if n!=x:l1=[j for j in range(x)]l2=[j for j in range(x+1,n)]l3=l1+l2+[x]print(*l3)else:l=[j for j in range(n)]print(*l)
C. Cherry Bomb
https://codeforces.com/contest/2106/problem/C
题目大意:
每个案例输入n和k
再给a,b两个数组(n是他们的长度),其中a的元素已经固定,b中-1的位置表示可以随意变,范围是 [ 0 , k ] 左闭右开
要求a,b各个相对应的位置相加的和一致,输出有几种配合方式,如果没有可能就输出0
题解:
先过一遍统计一下b中不是-1的位置的和
如果不是一致的就可以直接输出0了,
如果一致也别开心太早:
由于a中元素x在添加[ 0 , k ]后区间为[ x , x + k ],su要在这区间中
从极端情况考虑就是if mx<=mn+k and mx<=su[0]<=mn+k:(得利用and短路的特性,判断顺序不能换)
可能a中最小值比和小或者最大值比和大:还是0
否则的话就输出1,因为和已经固定了
如果没有一个和的话那就贪心:a中最大最小值限定了范围上下限,同时还被k限定
观察后得到ans=k+mn-mx+1
t=int(input())for i in range(t):n,k=map(int,input().split())a=list(map(int,input().split()))b=list(map(int,input().split()))su=[]for j in range(n):if b[j]!=-1:su.append(a[j]+b[j])if su:if su[0]!=sum(su)/len(su):print(0)continueelse:mn=min(a)mx=max(a)if mx<=mn+k and mx<=su[0]<=mn+k:print(1)else:print(0)else:mx=max(a)mn=min(a)if mx>mn+k:print(0)else:print(k+mn-mx+1)
但是是错的
贪心个屁,还不如直接模拟
t = int(input())for _ in range(t):n, k = map(int, input().split())a = list(map(int, input().split()))b = list(map(int, input().split()))target = Nonecnt_missing = 0for i in range(n):if b[i] != -1:curr_sum = a[i] + b[i]if target is None:target = curr_sumelif target != curr_sum:print(0)breakelse:cnt_missing += 1else: # 没有break才会执行if target is None: # b全是-1的情况max_a = max(a)min_a = min(a)if max_a > min_a + k: # 差值太大,无解print(0)else:ans = min_a + k - max_a + 1print(max(0, ans))else:# 已知target,检查所有-1位置填入的值是否在范围内valid = Truefor i in range(n):if b[i] == -1:bi = target - a[i]if bi < 0 or bi > k:valid = Falsebreak'''mn=min(a)mx=max(a)if mn>target or mx'''print(1 if valid else 0)
D. Flower Boy
https://codeforces.com/contest/2106/problem/D
题目大意:
一个长度为n的数组a,一个长度为m的数组b,按左到右的顺序遍历a,选出m个数,选出的第i个不小于b[i],现在有种只能进行一次的操作,可以在a中任意位置插入一个任意整数k,如果不插入就能选m个就输出0,如果插入后仍不能选m个就输出-1,否则求最小k
注意:题面说“从左到右”并不是连续,所以m朵花可以是跳跃的
题解:
首先构造check函数模拟选花的过程
判断原来数组不插入可以的话直接输出0
二分查找k值
枚举所有可插入位置
def solve():n, m = map(int, input().split())a = list(map(int, input().split()))b = list(map(int, input().split()))def check(arr, b):bi = 0for val in arr:if bi < len(b) and val >= b[bi]:bi += 1return bi == len(b)if check(a, b):print(0)returnleft = 1right = max(max(a), max(b))ans = -1while left <= right:mid = (left + right) // 2possible = Falsefor i in range(n + 1):temp_a = a[:]temp_a.insert(i, mid)if check(temp_a, b):possible = Truebreakif possible:ans = midright = mid - 1else:left = mid + 1print(ans)t = int(input())
for _ in range(t):solve()
做到D感觉就太累了,也许题面是中文、时间再早点还能a一下,我还是练太少了
相关文章:
Codeforces Round 1020 (Div. 3) A-D
A. Dr. TC https://codeforces.com/contest/2106/problem/A 题目大意: 对输入字符串每个位置字符依次翻转(1->0 , 0->1) 比如: 101 001 翻转位置1 111 2 100 3 题解: 观察数学特征:ansn…...

系统思考:看清问题背后的结构
组织的挑战,往往不是因为不努力,而是“看不清” 结束了为期两天系统思考课程的第一天,被学员的全情投入深深打动。我们用系统结构图,一步步揭示那些表面看起来“习以为常”的问题: 什么原因跨部门协作总是磕磕绊绊&am…...
netlist
在电子设计自动化(EDA)中,网表(Netlist) 是描述电路设计连接关系的核心数据结构,本质上是电路元件(如逻辑门、晶体管、模块)及其互连关系的 文本化或结构化表示。它是从抽象设计&…...
如何实现Android屏幕和音频采集并启动RTSP服务?
技术背景 在移动直播和视频监控领域,实现高效的屏幕和音频采集并提供流媒体服务是关键技术之一。本文将详细介绍如何基于大牛直播SDK实现Android屏幕和麦克风/扬声器采集,并启动轻量级RTSP服务以对外提供拉流的RTSP URL。在Android平台上,轻…...

Langchain_Agent+数据库
本处使用Agent数据库,可以直接执行SQL语句。可以多次循环查询问题 前文通过chain去联系数据库并进行操作; 通过链的不断内嵌组合,生成SQL在执行SQL再返回。 初始化 import os from operator import itemgetterimport bs4 from langchain.ch…...

QT6 源(45):分隔条 QSplitter 允许程序的用户修改布局,程序员使用 IDE时,就是分隔条的用户,以及其 QSplitter 源代码
(1) (2)本类的继承关系如下,所以说分隔条属于容器: (3)本类的属性: (4) 这是一份 QSplitter 的举例代码,注意其构造函数时候的传参&am…...

Huffman(哈夫曼)解/压缩算法实现
一、文件压缩 哈夫曼压缩算法需要对输入的文件,逐字节扫描,统计出不同字节出现的数量(频率),根据的得到的频率生成一组叶子节点,这些节点存储着<字节信息>和<频率>,通常需要按频率排序后存储在…...

迭代器模式:统一数据遍历方式的设计模式
迭代器模式:统一数据遍历方式的设计模式 一、模式核心:将数据遍历逻辑与数据结构解耦 在软件开发中,不同的数据结构(如数组、链表、集合)有不同的遍历方式。如果客户端直接依赖这些数据结构的内部实现来遍历元素&…...
Oracle_开启归档日志和重做日志
在Oracle中,类似于MySQL的binlog的机制是归档日志(Archive Log)和重做日志(Redo Log) 查询归档日志状态 SELECT log_mode FROM v$database; – 输出示例: – LOG_MODE – ARCHIVELOG (表示已开启) – NO…...

LeetCode每日一题4.23
题目 问题分析 计算每个数字的数位和:对于从 1 到 n 的每个整数,计算其十进制表示下的数位和。 分组:将数位和相等的数字放到同一个组中。 统计每个组的数字数目:统计每个组中有多少个数字。 找到并列最多的组:返回数…...
线性代数-矩阵的秩
矩阵的秩(Rank)是线性代数中的一个重要概念,表示矩阵中线性无关的行(或列)的最大数量。它反映了矩阵所包含的“有效信息”的维度,是矩阵的核心特征之一。 直观理解 行秩与列秩: 行秩࿱…...

RunnerGo API性能测试实战与高并发调优
API 性能测试通过模拟不同负载场景,量化评估 API 的响应时间、吞吐量、稳定性、可扩展性等性能指标,关注其在正常、高峰甚至极限负载下的表现。这有助于确保 API 稳定高效地运行,为调用者提供优质服务。 接下来,我们借助 RunnerG…...

STM32——相关软件安装
本文是根据江协科技提供的教学视频所写,旨在便于日后复习,同时供学习嵌入式的朋友们参考,文中涉及到的所有资料也均来源于江协科技(资料下载)。 Keil5 MDK安装 1.安装Keil5 MDK2.安装器件支持包方法一:离线…...

数据结构入门【算法复杂度】超详解深度解析
🌟 复杂度分析的底层逻辑 复杂度是算法的"DNA",它揭示了两个核心问题: 数据规模(n)增长时,资源消耗如何变化? 不同算法在极端情况下的性能差异有多大? 数学本质解析 复杂度函数 T(n)O(f(n))…...

java多线程(7.0)
目录 编辑 定时器 定时器的使用 三.定时器的实现 MyTimer 3.1 分析思路 1. 创建执行任务的类。 2. 管理任务 3. 执行任务 3.2 线程安全问题 定时器 定时器是软件开发中的一个重要组件. 类似于一个 "闹钟". 达到一个设定的时间之后, 就执行某个指定好的…...

Long类型封装Json传输时精度丢失问题
在信息做传输时,经常会使用到类型转换,这个时候因为一些问题会导致精度的丢失。在支付业务中这种问题更为致命。 这里我主动生成一个支付订单并将相关信息使用base64编码为一个二维码返回给前端进行支付,前端进行支付时我通过回调方法发现回调…...

《从GPT崛起,看AI重塑世界》
《从GPT崛起,看AI重塑世界》 GPT 诞生:AI 领域的震撼弹 2022 年 11 月 30 日,OpenAI 发布了一款名为 ChatGPT 的人工智能聊天机器人程序,宛如一颗重磅炸弹投入了平静的湖面,迅速在全球范围内引发了轩然大波,成为了科技领域乃至大众舆论场中最热门的话题之一。一时间,无…...

系统架构-安全架构设计
概述 对于信息系统来说,威胁有:物理环境(最基础)、通信链路、网络系统、操作系统、应用系统、管理系统 物理安全:系统所用设备的威胁,如自然灾害、电源故障通信链路安全:在传输线路上安装窃听…...
基于大语言模型的AI智能体开发:构建具备工具使用能力的智能助手
本文将结合大语言模型(LLM)与工具调用能力,构建新一代AI智能体系统。通过ReAct框架实现智能思考-行动循环,集成网络搜索、计算器、API调用等外部工具,并基于LangChain实现可扩展的智能体架构。 一、新一代AI智能体技术…...

鼠标指定范围内随机点击
鼠标指定范围内随机点击 点赞神器 将鼠标移动到相应位置后按F5 F6键,设置点击范围, F8开始,ESC中止。 有些直播有点赞限制,例如某音,每小时限制3千次,可以设置1200毫秒,3000次。 软件截图&#…...

HashSet 概述
1. HashSet 概述 HashSet 是 Java 集合框架中 Set 接口的一个实现类,它存储唯一元素,即集合中不会有重复的元素。HashSet 基于哈希表(实际上是 HashMap 实例)来实现,不保证元素的顺序,并且允许存储 null 元…...

遥测终端机,推动灌区流量监测向数据驱动跃迁
灌区范围那么大,每一滴水怎么流都关系到粮食够不够吃,还有生态能不能平衡。过去靠人工巡查、测量,就像拿着算盘想算明白大数据,根本满足不了现在水利管理的高要求。遥测终端机一出现,就像给灌区流量监测安上了智能感知…...

蓝耘平台介绍:算力赋能AI创新的智算云平台
一、蓝耘平台是什么 蓝耘智算云(LY Cloud)是蓝耘科技打造的现代化GPU算力云服务平台,深度整合自研DS满血版大模型技术与分布式算力调度能力,形成"模型算力"双轮驱动的技术生态。平台核心优势如下: 平台定位…...

QtDesigner中Button控件详解
一:Button控件 关于Button控件的主要作用就是作为触发开关,通过点击事件(click)执行代码逻辑,或者作为功能入口,跳转到其他界面或模块。 二:常见属性与配置 ①Button的enabled,大…...

Flink 源码编译
打包命令 打包整个项目 mvn clean package -DskipTests -Drat.skiptrue打包单个模块 mvn clean package -DskipTests -Drat.skiptrue -pl flink-dist如果该模块依赖其他模块,可能需要先将其他模块 install 到本地,如果依赖的模块的源代码有修改&#…...

docker的安装和简单使用(ubuntu环境)
环境准备 这里用的是linux的环境,如果没有云服务器的话,就是用虚拟环境吧。 虚拟环境的安装参考:vmware17的安装 linux镜像的安装 docker安装 我使用的是ubuntu,使用以下命令: 更新本地软件包索引 sudo apt u…...
mongo客户端操作mongodb记录
背景: 长时间不操作mongodb数据库,已经遗忘了命令,今天正好用到,温习一下 直接上命令 #进入mongodb数据库安装bin目录cd /opt/mongodb/bin#连接mongodb ./mongo #查看所有的数据库 show dbs; #选择数据库 use xx; #查看表 show …...
Flink 数据清洗与字段标准化最佳实践
—— 构建可配置、可扩展的实时标准化清洗链路 本文是「Flink Kafka 构建实时数仓实战」专栏的第 4 篇,将围绕字段标准化这一核心问题,从业务痛点、技术架构、配置设计到完整代码工程,系统讲透标准化实践。 📌 一、为什么实时字段…...
哈工大李治军《操作系统》进程同步与信号量笔记
1.什么是信号量? 定义:记录一些信息(即量),并根据这个信息决定睡眠还是唤醒(即信号)。睡眠和唤醒只是一个信号(相当于0和1)。 2.问题:一种资源的数量是8&am…...

EasyRTC音视频实时通话在线教育解决方案:打造沉浸式互动教学新体验
一、方案概述 EasyRTC是一款基于WebRTC技术的实时音视频通信平台,为在线教育行业提供了高效、稳定、低延迟的互动教学解决方案。本方案将EasyRTC技术深度整合到在线教育场景中,实现师生间的实时音视频互动等核心功能,打造沉浸式的远程学习体…...