当前位置: 首页 > news >正文

贪心+构造,1924A - Did We Get Everything Covered?

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1924A - Did We Get Everything Covered?

二、解题报告

1、思路分析

我们从头遍历s,用集合st代表出现的前k个小写字母的字符集

如果 st 在某个位置变成全集,说明长度为1的序列是ok的

我们将st清空,接着遍历

st 又在某个位置变成全集,说明长度为2的序列是ok的

……

那么如何输出非法方案?

我们依次将每个全集时刻加入st的字符保存,然后再加上一个非法时不在st中的任意字符即可

2、复杂度

时间复杂度: O(N)空间复杂度:O(N)

3、代码详解

 ​
import sys
import math
import heapq
from collections import defaultdict, Counter
from string import ascii_lowercaseinput = lambda: sys.stdin.readline().strip()
output = lambda x: sys.stdout.write(str(x) + '\n')
MII = lambda: map(int, input().split())
LMI = lambda: list(map(int, input().split()))
LI = lambda: list(input())
II = lambda: int(input())
I = lambda: input()
fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y# sys.stdin = open('in.txt', 'r')def solve():n, k, m = LMI()s = I()st = 0full = (1 << k) - 1ans = ''for x in s:if ord(x) - ord('a') < k:st |= 1 << (ord(x) - ord('a'))if st == full:st = 0ans += xif len(ans) < n:print('NO')for i in range(k):if ((st >> i) & 1) == 0:ans += str(chr(ord('a') + i)) * (n - len(ans))breakprint(ans)else:print('YES')    passif __name__ == "__main__":T = 1T = II()for _ in range(T):solve()

http://www.lryc.cn/news/434432.html

相关文章:

  • 麦汁煮沸工艺
  • 企业级WEB应用服务器---TOMACT
  • 前端:JavaScript中的this
  • Zynq7020 SDK 初学篇(5)- 中断
  • 如何清缓存
  • 《计算机算法设计与分析》笔记
  • 智能指针怎么就智能了?
  • mysql 限制用户登录次数超过3次就 锁定账户在一段时间内不运行操作
  • 深度学习中的常用线性代数知识汇总——第二篇:行列式、逆矩阵、特征值与特征向量
  • 《MaPLe: Multi-modal Prompt Learning》中文校对版
  • MFC修改控件ID的详细说明
  • MySQL高可用配置及故障切换
  • AI模型一体机:智能办公的未来
  • jina的Embedding Reranker
  • Prompt Engineer: 使用Thought来提升LLM的回复能力
  • tekton构建标准ci(clone repo, test, build push img)
  • 【电力系统】复杂网络分析在电力系统规范中的应用
  • CDGA|推动数据治理与传统产业深度融合:策略与实践路径
  • 【FastAPI】离线使用Swagger UI 或 国内网络如何快速加载Swagger UI
  • Linux:从入门到放弃
  • SVM 监督学习
  • 奖励模型的训练
  • Ubuntu22.04之禁止内核自动更新(二百六十八)
  • kaggle题-房价预测(Pytorch),手把手教,全文代码解释
  • PulseSensor心率传感器详解(STM32)
  • NISP 一级 | 3.1 网络基础知识
  • 模拟网络丢包常用方法以及工具
  • ABC 370 E - Avoid K Partition
  • C++: set与map容器的介绍与使用
  • 单片机-STM32 看门狗(八)