[acwing周赛复盘] 第 90 场周赛20230211 补

news2024/9/23 17:19:04

[acwing周赛复盘] 第 90 场周赛20230211 补

    • 一、本周周赛总结
    • 二、 4806. 首字母大写
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 三、4807. 找数字
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 四、4808. 构造字符串
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • T1 模拟
  • T2 模拟
  • T3 前缀函数不会写,直接暴力。

二、 4806. 首字母大写

链接: 4806. 首字母大写

1. 题目描述

在这里插入图片描述

2. 思路分析

试图title,但是不对。
只好模拟。

3. 代码实现

# Problem: 首字母大写
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4809/
# Memory Limit: 256 MB
# Time Limit: 1000 ms

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *
from math import sqrt, gcd, inf
if sys.version >= '3.8':  # ACW没有comb
    from math import comb

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10**9 + 7


#       ms
def solve():
    s, = RS()
    print(s[0].upper() + s[1:])



if __name__ == '__main__':
    solve()

三、4807. 找数字

链接: 4807. 找数字

1. 题目描述

在这里插入图片描述

2. 思路分析

wa麻了。
  • 建立长度m的数组作为m位,试图给所有位置贪心的填上数,最大好办,从左到右优先填9。
  • 小的其实就是把mx转过来,但是第一位不能是0,因此找最后一位不是0的位置,借一个1过来填到最后一位。
  • 注意s==0的情况,m可以是1.

3. 代码实现

# Problem: 找数字
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4810/
# Memory Limit: 256 MB
# Time Limit: 1000 ms

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *
from math import sqrt, gcd, inf

if sys.version >= '3.8':  # ACW没有comb
    from math import comb

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10 ** 9 + 7


#       ms
def solve():
    m, s = RI()
    if s == 0 and m == 1:
        return print('0 0')
    if s < 1 or 9 * m < s:
        return print('-1 -1')
    t = s

    a = [0] * m
    i = 0
    while t:
        x = min(t, 9)
        a[i] = x
        t -= x
        i += 1
    mx = ''.join(map(str, a))
    if a[-1] == 0:
        for i in range(m - 1, -1, -1):
            if a[i]:
                a[-1] += 1
                a[i] -= 1
                break
    print(''.join(map(str, a[::-1])), mx)


if __name__ == '__main__':
    solve()

四、4808. 构造字符串

链接: 4808. 构造字符串

1. 题目描述

在这里插入图片描述

2. 思路分析

读完题立刻想到前缀函数/next数组,但我不会写。
好在这题数据量小,可以暴力。
  • 后缀数组可以求出每个前缀是否能和后缀匹配的最大长度。
  • 即如果前缀是x,s[:x]是否==s[-x:]。只要相同,就可以无限在后边追加后半部分(包括中间部分)即可。
  • 比如形如aba的串(其中ab均代表一段),只需要往后添加ba,变成ababababa…
  • 准备记个前缀函数模板。

  • 代码里两种方法都能过。

3. 代码实现

# Problem: 构造字符串
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4811/
# Memory Limit: 256 MB
# Time Limit: 1000 ms

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *
from math import sqrt, gcd, inf

if sys.version >= '3.8':  # ACW没有comb
    from math import comb

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10 ** 9 + 7

def prefix_function(s):
    """计算s的前缀函数,复杂度o(n)"""
    n = len(s)
    pi = [0] * n
    for i in range(1, n):
        j = pi[i - 1]
        while j > 0 and s[i] != s[j]:
            j = pi[j - 1]
        if s[i] == s[j]:
            j += 1
        pi[i] = j
    return pi
#       ms
def solve1():
    n, k = RI()
    t, = RS()
    mx = 0
    for i in range(1, n):
        if t[:i] == t[-i:]:
            mx = i
    if mx == 0:
        return print(t * k)
    suf = t[mx:]
    print(t + suf * (k - 1))
#       ms
def solve():
    n, k = RI()
    t, = RS()
    mx = prefix_function(t)[-1]

    if mx == 0:
        return print(t * k)
    suf = t[mx:]
    print(t + suf * (k - 1))


if __name__ == '__main__':
    solve()

六、参考链接

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

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

相关文章

ThingsBoard-实现定时任务调度器批量RPC

1、概述 ThingsBoard-CE版是不支持调度器的,只有PE版才支持,但是系统中很多时候需要使用调度器来实现功能,例如:定时给设备下发rpc查询数据,我们如何来实现呢?下面我将教你使用巧妙的方法来实现。 2、使用什么实现 我们可以使用规则链提供的一个节点来实现,这个节点可…

Linux系统服务:Apache安装及配置应用

目录 一、Apache安装 1、Apache简介 2、Yum安装 3、编译安装 4、服务管理 5、编译安装实现systemctl服务管理 二、Apache配置应用 1、基础应用 2、隐藏版本号 3、更改监听端口 一、Apache安装 1、Apache简介 Apache即阿帕奇是一款开源的、世界使用排名第一的Web服务…

2023 年腾讯云服务器CVM快速配置购买教程,新手上云必备!

腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例&#xff0c;给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建&#xff0c;给新手节省宝贵的时间&#xff0c;避免采坑&#xff0…

【软件测试】大厂测试开发你真的了解吗?测试开发养成记......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 在一些大公司里&…

2D图像处理:2D ShapingMatching_缩放_旋转_ICP_显示ROI

文章目录 调试结果参考调试说明问题0:并行运行问题问题1:模板+Mask大小问题问题2:组合缩放和旋转问题3:可以直接将计算边缘的代码删除问题4:如何在原始图像上显示匹配到的ROI问题5:计算的原始旋转角度不需要判断,直接可以在ICP中使用问题6:绘制坐标轴问题7:绘制ROI调试…

Nginx - 深入理解nginx的处理请求、进程关系和配置文件重载

概述 Nginx的系统学习整理的第三篇博客&#xff0c;主要介绍nginx的应用场景和架构基础&#xff0c;以便更好的理解&#xff0c;再生产环境中进行性能调优。 Nginx的三个主要应用场景 1.静态资源服务&#xff0c;通过本地文件系统提供服务 2.反向代理服务&#xff0c;强大的性…

AOSP Android11系统源码和内核源码

推荐阅读 商务合作 安全产品 安全服务 2023年招聘 安全培训服务 软件定制服务 Android系统定制服务 安全/软件开发的课程列表 1.下载repo工具 (1).创建bin&#xff0c;并加入到PATH中 mkdir ~/binPATH~/bin:$PATH (2).安装依赖库 sudo apt-get install bison g-mult…

leetcode练习一:数组(二分查找、双指针、滑动窗口)

文章目录一、 数组理论基础二、 二分查找2.1 解题思路2.2 练习题2.2.1 二分查找(题704)2.2.2 搜索插入位置&#xff08;题35&#xff09;2.2.3 查找排序数组元素起止位置&#xff08;题34&#xff09;2.2.4 有效的完全平方数&#xff08;题367&#xff09;2.2.5 x 的平方根&…

MySQL——单表、多表查询

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varcha…

Mask-RCNN(2) : 代码使用

Mask- RCNN原理及网络详解&#xff0c;参见&#xff1a;Mask- RCNN网络详解 1. Mask-RCNN代码使用 该项目参考自pytorch官方torchvision模块中的源码(使用pycocotools处略有不同) 环境配置 Python3.6/3.7/3.8Pytorch1.10或以上pycocotools(Linux:pip install pycocotools; …

直面原理:5 张图彻底了解 Android TextToSpeech 机制

ChatGPT 如此火爆&#xff0c;但它的强悍在于 NLU&#xff08;自然语言理解&#xff09;、DM&#xff08;对话管理&#xff09;和 NLG &#xff08;自然语言生成&#xff09;这三块&#xff0c;而 Recognition 识别和 TTS 播报这两块是缺失的。假使你的 App 接入了 ChatGPT&…

rar压缩文件暴力破解

1. 简介 rar 压缩文件资源又不少是被加密的&#xff0c;密码通常也比较简单&#xff0c;我们可以通过暴力破解的方式来获取&#xff0c;通常耗时也比较小 程序地址&#xff1a;rar压缩密码暴力破解程序 2. 使用说明 2.1 基本语法 rar-bruteforce-crack.py [--start START] …

【visio使用技巧】图片导出pdf时去掉多余空白

问题 在visio导出pdf格式的图片时&#xff0c;往往会存在多余的白边&#xff0c;如下图所示&#xff1a; 解决方法 依次点击&#xff1a;菜单栏→文件→选项→自定义功能区→勾选“开发工具”→确定。 依次点击菜单栏→开发工具→显示ShapeSheet→页→Print Properties→将…

Ros中如何给UR5配置自定义工具 | 在Rviz中给UR5机器人装载定义工具 | UR5配置自定义末端执行器

前言 在学习和项目研究的过程中&#xff0c;我需要在Ur5e上装上工具&#xff0c;以对现实场景进行仿真。网上会有一些装载/配置现成的夹爪&#xff0c;例如Robotiq等。但和我们装载自定义工具的场景还有些差异&#xff0c;因此写一篇博客记录&#xff0c;可能有偏差。如果有问…

宝塔面板轻量云服务器部署spring boot java后端、vite vue3前端、nginx。

环境 初始时宝塔面板推荐应用安装选择 根据开发或者测试。选择安装配置&#xff0c;等待两个安装任务完成。 niginxmysql 安装jdk 显示jdk列表 yum -y list java* 安装指定版本 yum install -y java-1.8.0-openjdk.x86_64 默认安装到 usr/lib/jvm/ &#xff0c;无需再配置…

干货 | 简单了解运算放大器...

运算放大器发明至今已有数十年的历史&#xff0c;从最早的真空管演变为如今的集成电路&#xff0c;它在不同的电子产品中一直发挥着举足轻重的作用。而现如今信息家电、手机、PDA、网络等新兴应用的兴起更是将运算放大器推向了一个新的高度。01 运算放大器简述运算放大器&#…

Linux环境变量讲解

目录 环境变量 alias命令 type命令 变量分类 Linux最主要的全局环境变量 环境变量 变量是计算机系统用于保存可变数值的数据类型 在Linux中&#xff0c;一般变量都是大写&#xff0c;命令是小写 在Linux中&#xff0c;变量直接使用&#xff0c;不需要定义&#xff08;更快…

Spring框架自定义实现IOC基础功能/IDEA如何手动实现IOC功能

继续整理记录这段时间来的收获&#xff0c;详细代码可在我的Gitee仓库Java设计模式克隆下载学习使用&#xff01; 7.4 自定义Spring IOC 创建新模块&#xff0c;结构如图![[Pasted image 20230210173222.png]] 7.4.1 定义bean相关POJO类 7.4.1.1 定义propertyValue类 /** …

Linux--POSIX信号量--基于环形队列的生产消费模型-0208

1. 什么是信号量 共享资源由于原子性的原则&#xff0c;任何时刻都只有一个执行流在进行访问。表现为互斥&#xff0c;也就代表共享资源起始是被当做整体来访问的。 那如果有一个共享资源&#xff0c;不当成一个整体&#xff0c;让不同的执行流访问不同的资源区域代码&#x…

67 自注意力【动手学深度学习v2】

67 自注意力【动手学深度学习v2】 深度学习学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV19o4y1m7mo/?spm_id_fromautoNext&vd_source75dce036dc8244310435eaf03de4e330 给定长为n 的序列&#xff0c;每个xi为长为d的向量&#xff0c;自注意力将xi 既当…