[acwing周赛复盘] 第 88 场周赛20230128

news2024/11/13 14:42:06

[acwing周赛复盘] 第 88 场周赛20230128

    • 一、本周周赛总结
    • 二、 4800. 下一个
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 三、4801. 强连通图
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 四、4802. 金明的假期
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • 在T2卡了半天,因为自己封的RS读入字符串方法要加个逗号,于是先去做了T3再回来做T2。
  • T1 暴力
  • T2 Floyd
  • T3 线性DP在这里插入图片描述在这里插入图片描述

二、 4800. 下一个

链接: 4800. 下一个

1. 题目描述

在这里插入图片描述

2. 思路分析

签到题,暴力找。

3. 代码实现

# Problem: 下一个
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4803/
# 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 math import sqrt, gcd, inf
# ACW没有comb
# from math import sqrt, gcd, inf, comb
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

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')

#       ms
def solve():
    n, = RI()
    n += 1
    while True:
        s = str(n)
        if len(s) == len(set(s)):
            return print(n)
        n += 1


if __name__ == '__main__':
    solve()

三、4801. 强连通图

链接: 4801. 强连通图

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 求所有点到所有点都能连通/最短距离,第一时间先想floyd。
  • 看了下数据范围,n<=m<=20,最多400个点,n立方是可行的。因此给点编号,直接上floyd。
  • 一共z = n*m个点,二维数组dis[u][v] 代表点u到点v是否连通。
  • 然后枚举每个点作为跳板k,看看从u到k和从k到v是否连通,则连通uv。

  • 赛后发现,只要四周能互相到达,就等于全图能连通。
  • 因此只判断外围即可,即外围只有两种方案的字符串,顺时针或逆时针,直接判断即可。

3. 代码实现

# Problem: 强连通图
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4804/
# 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 math import sqrt, gcd, inf
# ACW没有comb
# from math import sqrt, gcd, inf, comb
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

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():
    n, m = RI()
    a, = RS()
    b, = RS()
    # print(a,b)
    z = m * n
    dis = [[False] * z for _ in range(z)]
    for i in range(z):
        dis[i][i] = True
    for i, c in enumerate(a):
        if c == '>':
            for j in range(m - 1):
                u = i * m + j
                v = i * m + j + 1
                dis[u][v] = True
        else:
            for j in range(m - 1):
                v = i * m + j
                u = i * m + j + 1
                dis[u][v] = True

    for j, c in enumerate(b):
        if c == 'v':
            for i in range(n - 1):
                u = i * m + j
                v = (i+1) * m + j
                dis[u][v] = True
        else:
            for i in range(n - 1):
                v = i * m + j
                u = (i+1) * m + j
                dis[u][v] = True

    for k in range(z):
        for i in range(z):
            for j in range(z):
                if dis[i][k] and dis[k][j]:
                    dis[i][j] = True
    # print(dis)
    for i in range(z):
        for j in range(z):
            if not dis[i][j]:
                return print('NO')
    print('YES')


if __name__ == '__main__':
    solve()

四、4802. 金明的假期

链接: 4802. 金明的假期

1. 题目描述

在这里插入图片描述

2. 思路分析

蛮裸的线性DP。

  • 定义:令f[i][0/1/2]代表第i天, 小明选择休息/看书/健身时,最少休息次数。

  • 转移:显然,只有对应的房间开放,才能选择今天进行这个活动,并且从昨天其他房间转移。

    • 问题变成如何判断对应房间开放,硬if有点麻烦,这里用位运算。
    • a[i] & 1 == 1 代表图书馆开,可以看书。
      • f[i][1] = min(f[i - 1][0], f[i - 1][2])
    • a[i] & 2 == 2 代表健身房开,可以健身
      • f[i][2] = min(f[i - 1][0], f[i - 1][1])
    • 任意时间可以休息,f[i][0] = min(f[i-1])
  • 初始:显然第一天休息的话f[0] = 1;在第一天对应房间开方情况下,对应位置都是0.其他设置为inf。

  • 答案:min(f[-1])。注意f[-1][0]也可能是答案,因为最后一天可能什么都不开,只能休息。

  • 实现时可以滚动优化。(但这题没有空间问题,考试时没必要)

3. 代码实现

# Problem: 金明的假期
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4805/
# 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 math import sqrt, gcd, inf
# ACW没有comb
# from math import sqrt, gcd, inf, comb
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

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


#    4330   ms
def solve1():
    n, = RI()
    a = RILST()
    f = [[inf] * 3 for _ in range(n)]  # 0/1/2 休息  看书 健身
    f[0][0] = 1
    if a[0] & 1:
        f[0][1] = 0
    if a[0] & 2:
        f[0][2] = 0

    for i in range(1, n):
        v = a[i]
        f[i][0] = min(f[i - 1]) + 1
        if v & 1:
            f[i][1] = min(f[i - 1][0], f[i - 1][2])
        if v & 2:
            f[i][2] = min(f[i - 1][0], f[i - 1][1])
    print(min(f[-1]))


#   4274     ms
def solve():
    n, = RI()
    a = RILST()
    y = z = inf  # 休息  看书 健身
    x = 0
    for v in a:
        x, y, z = min(x, y, z) + 1, min(x, z) if v & 1 else inf, min(x, y) if v & 2 else inf

    print(min(x, y, z))


if __name__ == '__main__':
    solve()

六、参考链接

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

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

相关文章

签到网站js逆向与python实现

登陆分析 数据分析 Chrome浏览器进入填报系统,选择对应学校,来到登陆界面。 打开Chrome开发者工具(快捷键F12),模拟手机端。 111111 222222 333333 点击登陆,分析网络数据包。 表单有四个必需字段: 身份(UserType) 学号(XGH) 姓名(Name) 密码(PassWord) 一个…

2023最新版会声会影有哪些新功能介绍?

会声会影是Corel制作的一款功能强大的视频编辑软件&#xff0c;英文名&#xff1a;Corel VideoStudio。会声会影2023作为当下最为受欢迎的视频编辑处理程序&#xff0c;其在业内可以说享有极高的知名度&#xff1b;而全新的2023版本更是如此&#xff0c;很多忠实的用户都想来体…

如何确保API 的稳定性与正确性?你只需要这一招

一、什么是rest-assured现在&#xff0c;越来越多的 Web 应用转向了RESTful的架构&#xff0c;很多产品和应用暴露给用户的往往就是一组 REST API&#xff0c;这 样有一个好处&#xff0c;用户可以根据需要&#xff0c;调用不同的 API&#xff0c;整合出自己的应用出来。从这个…

Linux常用命令——scp命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) scp 加密的方式在本地主机和远程主机之间复制文件 补充说明 scp命令用于在Linux下进行远程拷贝文件的命令&#xff0c;和它类似的命令有cp&#xff0c;不过cp只是在本机进行拷贝不能跨服务器&#xff0c;而且s…

C++基础入门丨7. 指针——一文搞懂指针

操作系统&#xff1a;Windows 10 IDE&#xff1a;Visual Studio 2019 文章目录1 什么是指针2 指针变量的定义和使用3 指针所占用的空间4 空指针和野指针5 const修饰指针6 指针和数组7 指针和函数8 指针、函数、数组1 什么是指针 我们知道每一个变量都有一个内存位置&#xff0…

【ESLint】ESLint的安装配置及vscode插件

一、什么是ESLintESLint是可组装的JavaScript和JSX检查工具。工作中常用&#xff0c;所以最好有所了解。可以在官网中查询相关规则&#xff1a;ESLint - Pluggable JavaScript linter - ESLint中文二、ESLint的安装配置在创建自定义vue项目时&#xff0c;要勾选CSS Pre-process…

SpringCloud 微服务工具集

SpringCloud 微服务工具集 v1.1 微服务架构集大成者&#xff0c;云计算最佳业务实践。 版本: Hoxton SR6 1.什么是微服务 官网: https://www.martinfowler.com/articles/microservices.html In short, the microservice architectural &#xff08;架构&#xff09;style is…

32种EMC标准电路分享-电路接口防护-标准参考电路

30种EMC标准电路01 AC24V接口EMC设计标准电路02 AC110V-220VEMC设计标准电路03 AC380V接口EMC设计标准电路04 AV接口EMC设计标准电路05 CAN接口EMC设计标准电路06 DC12V接口EMC设计标准电路07 DC24V接口EMC设计标准电路08 DC48接口EMC设计标准电路09 DC110V接口EMC设计标准电路…

Blender 物理属性 (四)流体

文章目录流体简介.域.创建域.直接创建.通过物体创建.域的属性.设置.液体&#xff08;域类型为液体时&#xff09;.扩散.网格.气体&#xff08;域类型为气体时&#xff09;.消融.噪波.视图显示.缓存.流.创建水.创建火与烟.流来源.初始速度.渲染火与烟.效果器.流体简介. 1 流体用…

这些好用的办公软件分享给你

软件一&#xff1a;备忘录 现在大部分手机备忘录都提供语音记录功能&#xff0c;可以实时录音并转换成文本内容记录下来&#xff0c;使用起来还是比较方便的&#xff0c;但是要注意它支持转换的时长是有限制的哦&#xff01; 操作步骤&#xff1a;打开手机备忘录&#xff0c;…

【宝塔】【Windows】【Blessing-Skin】【我的世界】用宝塔Windows搭建皮肤站

文章目录前言所需环境相关链接安装宝塔安装步骤访问宝塔同意协议安装环境安装WNMP添加站点开始安装皮肤站配置网站配置Nginx URL重写规则&#xff08;即 伪静态&#xff09;配置PHP安装皮肤站一些小调整安装插件常见问题 - 插件市场严重错误添加认证服务器结尾前言 为什么不用…

数影周报:LOL源代码遭黑客拍卖,阿里杭州西溪全球总部2023年底前全面建成

本周看点&#xff1a;《英雄联盟》游戏源代码遭黑客拍卖&#xff1b;消息称Salesforce 将任命三位新独立董事&#xff1b;2022年下架移动应用程序420款&#xff1b;抖音超市上线&#xff1b;戴尔以约1亿美元收购以色列初创公司Cloudify......数据安全那些事《英雄联盟》游戏源代…

【Pytorch项目实战】之自然语言处理:RNN、LSTM、GRU、Transformer

文章目录自然语言处理算法一&#xff1a;循环神经网络&#xff08;Recurrent Natural Network&#xff0c;RNN&#xff09;算法二&#xff1a;长短时记忆神经网络&#xff08;Long Short-Term Memory&#xff0c;LSTM&#xff09;算法三&#xff1a;门控循环单元神经网络&#…

基于android的新闻阅读系统

需求信息&#xff1a; 从模块的角度将APP的主要内容划分为登录模块、新闻模块、留言模块、报道模块、关注模块、语音模块这六个功能模块&#xff0c;完成以下功能&#xff1a; &#xff08;1&#xff09;登录模块 当用户打开应用程序后&#xff0c;如果直接登录&#xff0c;由于…

ElasticSearch - DSL查询语法

目录 DSL查询分类 全文检索查询 精确查询 地理查询 复合查询 相关性算分 算分函数查询 BooleanQuery DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有的数据&#x…

Rust库交叉编译以及在Android与iOS中使用

本篇是关于交叉编译Rust库&#xff0c;生成Android和iOS的二进制文件&#xff08;so与a文件&#xff09;&#xff0c;以及简单的集成使用。 1.环境 系统&#xff1a;macOS 13.0 M1 Pro&#xff0c;Windows 10 Python: 3.9.6 Rust: 1.66.1 NDK: 21.4.7075529 这里就不具体说…

收藏贴!新手到底应该购买Salesforce专业版还是企业版?

Salesforce专业版&#xff08;Professional Edition&#xff09;是一个适用于小型企业的工具&#xff0c;它具有完整Salesforce套件的许多功能&#xff0c;但也有一些明显的限制。本篇文章将具体阐明Salesforce专业版是什么&#xff0c;它的优势以及其与企业版&#xff08;Ente…

SQL Server 2008如何创建定期自动备份任务

我们知道&#xff0c;利用SQL Server 2008数据库可以实现数据库的定期自动备份。方法是用SQL SERVER 2008自带的维护计划创建一个计划对数据库进行备份&#xff0c;下面我们将SQL SERVER 2008定期自动备份的方法分享给大家。 首先需要启动SQL Server Agent服务&#xff0c;这个…

Python实现vlog生成器

Python实现vlog生成器 vlog&#xff0c;全称为Video blog&#xff0c;意为影音博客&#xff0c;也有翻译为微录。 本文将尝试用Python基于Moviepy从一个文本文件中自动生成一个视频格式的vlog&#xff0c;实现的功能如下&#xff1a; 将文件的第一行标题生成视频的片头将文件…

C++——红黑树

目录 红黑树介绍 红黑树实现 节点的插入 完整代码 红黑树介绍 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确…