[abc复盘] abc297 20230409

news2024/12/25 1:01:54

[atc复盘] abc297 20230409

    • 一、本周周赛总结
    • A - Double Click
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • B - chess960
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • C - PC on the Table
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • D - Count Subtractions
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • E - Kth Takoyaki Set
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • G - Constrained Nim 2
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • 这次学了个nim游戏-sg函数。
  • A 模拟。
  • B 模拟。
  • C 贪心模拟。
  • D GCD模拟。
  • E堆模拟-超级丑数。
  • F 不会。
  • G nim游戏-sg函数。

在这里插入图片描述

A - Double Click

链接: A - Double Click

1. 题目描述

在这里插入图片描述

2. 思路分析

按题意模拟即可。

3. 代码实现

def solve():
    n, d = RI()
    a = RILST()
    for i in range(n - 1):
        if a[i + 1] - a[i] <= d:
            return print(a[i + 1])
    print(-1)

B - chess960

链接: B - chess960

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 模拟,学了个单词parties:奇偶性。

3. 代码实现

def solve():
    s, = RS()
    d = defaultdict(list)
    for i, c in enumerate(s):
        d[c].append(i)
    k = d['K'][0]
    x, y = d['R']
    if not x < k < y:
        return print('No')
    x, y = d['B']
    if x % 2 == y % 2:
        return print('No')
    print('Yes')

C - PC on the Table

链接: C - PC on the Table

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 直接遇到合法就替换即可。不会更差。

3. 代码实现

def solve():
    h, w = RI()
    for _ in range(h):
        s, = RS()
        p = list(s)
        j = 0
        while j < w - 1:
            if s[j] == s[j + 1] == 'T':
                p[j] = 'P'
                p[j + 1] = 'C'
                j += 1
            j += 1
        print(*p, sep='')

D - Count Subtractions

链接: D - Count Subtractions

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 如果研究过循环相减法和辗转相除法,会知道循环相减法的劣势在于:当a,b差特别大时,a每次减少的幅度很小,需要更多的时间;辗转相除法可以一次把a中可能减去的b全部减完,节省了时间。
  • 因此用辗转相除法模拟即可。

3. 代码实现

# Problem: D - Count Subtractions
# Contest: AtCoder - AtCoder Beginner Contest 297
# URL: https://atcoder.jp/contests/abc297/tasks/abc297_d
# Memory Limit: 1024 MB
# Time Limit: 2000 ms

import sys

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
PROBLEM = """https://atcoder.jp/contests/abc297/tasks/abc297_d
输入a,b(1<=a,b<=1e18)
你可以执行以下操作直到a==b
    - 如果a>b,令a=a-b
    - 如果a<b,令b=b-a
问能执行多少次操作
"""
"""发现就是gcd操作,直接用取模模拟即可。
"""


#       ms
def solve():
    a, b = RI()
    if a < b:
        a, b = b, a
    ans = 0
    while b:
        c = a // b
        ans += c
        a %= b

        a, b = b, a
    print(ans - 1)


if __name__ == '__main__':
    solve()   

E - Kth Takoyaki Set

链接: E - Kth Takoyaki Set

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 跟超级丑数一个套路,用小顶堆模拟,每次用堆顶的最小值拿出来,和每种价格组合一下入堆。注意记录vis数组。。

3. 代码实现

PROBLEM = """https://atcoder.jp/contests/abc297/tasks/abc297_e
输入n(<=10),k(<=1e5),然后输入长度为n的数组a(1<=a[i]<=1e9),a[i]代表第i种章鱼烧的价格。
每种章鱼烧可以取任意个,你可以选任意个章鱼烧组合起来计算总价,请问能组合成的第k小总价是多少。
"""
"""跟超级丑数一个套路,用小顶堆模拟,每次用堆顶的最小值拿出来,和每种价格组合一下入堆。注意记录vis数组。
"""


#       ms
def solve():
    n, k = RI()
    a = RILST()
    a.sort()
    h = [0]
    p = {0}
    for i in range(k):
        x = heappop(h)
        for v in a:
            c = x + v
            if c not in p:
                p.add(c)
                heappush(h, c)
    print(heappop(h))

G - Constrained Nim 2

链接: G - Constrained Nim 2

1. 题目描述

在这里插入图片描述

2. 思路分析

  • nim游戏可以用SG函数解决。
  • SG(x) = mex{SG(y)|y是局面x的所有后记局面}
  • SG定理:
    • g是总体局面,它可以分成n个互相独立的局面:在本题就是n堆石子。
    • g = g1+g2+g3_…+gn
    • SG(g) = SG(g1)SG(g2)…^SG(gn)
  • 当SG(g)=0的时候,这个局面的玩家必败。
  • 对一堆石子打表一下找规律,发现循环节是(l+r),且从0向上增长,每l个一跳,就再除以l。

3. 代码实现

PROBLEM = """https://atcoder.jp/contests/abc297/tasks/abc297_g
nim游戏2,输入n(<2e5) l r(l,r<1e9),和长为n的数组a(a[i]<1e9)。a[i]代表第i堆石子的数量
First和Second两名玩家做游戏,轮流从任意一堆石子中取走l~r个石子,不能完成操作的玩家失败。
最优操作下问谁赢。
"""
"""nim游戏可以用SG函数解决。
SG(x) = mex{SG(y)|y是局面x的所有后记局面}
SG定理:
    - g是总体局面,它可以分成n个互相独立的局面:在本题就是n堆石子。
    - g = g1+g2+g3_..+gn
    - SG(g) = SG(g1)^SG(g2)^..^SG(gn)
当SG(g)=0的时候,这个局面的玩家必败。
对一堆石子打表一下找规律,发现循环节是(l+r),且从0向上增长,每l个一跳,就再除以l。
"""


#  163 ms
def solve():
    n, l, r = RI()
    a = RILST()
    s = 0

    def sg(x):
        return x % (l + r) // l

    for v in a:
        s ^= sg(v)

    if s:
        print('First')
    else:
        print('Second')

六、参考链接

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

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

相关文章

Spring 04 -SpringAOP开发

SpringAOP开发SpringAOP1 原理2 动态代理2.1 JDK动态代理2.2.2 Cglib动态代理2.2.3 **JDK动态代理和Cglib动态代理**3 SpringAOP3.1 AOP专业术语3.2 环境搭建3.3 基于XML配置3.4 基于注解配置2.5 通知类型面向切面编程&#xff0c;在不修改源代码的情况加&#xff0c;对类功能实…

人工智能中的顶级会议

当搭建好了AI领域的知识架构&#xff0c;即具备了较好的数学、编程及专业领域知识后&#xff0c;如果想在AI领域追踪前沿研究&#xff0c;就不能再只看教材了。毕竟AI领域的发展一日千里&#xff0c;教材上的知识肯定不是最新的。此时&#xff0c;应该将关注的重点转向AI领域的…

JavaWeb - Web网站的组成,工作流程以及开发模式

一. Web Web&#xff1a;全球广域网&#xff0c;也称玩万维网(www Wrold Wide Web)&#xff0c;就是能够通过浏览器访问的网站学习Web开发&#xff0c;其实就是要使用Java这门语言来开发这样的Web网站&#xff0c;这也是现在Java语言最主流的企业级应用方式。使用Java语言开发…

Nginx基本配置 Nginx服务基础Nginx访问控制Nginx虚拟主机

本章结构 Nginx服务基础 Nginx访问控制 Nginx虚拟主机 原理&#xff1a; 关于Nginx 一款高性能、轻量级Web服务软件 稳定性高 系统资源消耗低 apache多线程或多进程实现连接&#xff08;多线程比多线程稍微好些&#xff0c;切换资源浪费少&#xff09; Nginx单线程 对HTTP并发…

自己动手写CPU——第二篇

1 ori指令说明 ori是进行逻辑 或 运算的指令&#xff0c;其指令格式如下所示 从以上的指令格式&#xff0c;我们可以直到&#xff0c;这是一个I类型指令&#xff0c;ori指令的指令码是 6‘b001101&#xff0c;所以当处理器发现正在处理的指令的高6bit 是 001101 的时候&#x…

vue3 css相关知识与动态style

scoped 当 <style> 标签带有 scoped attribute 的时候&#xff0c;它的 CSS 只会影响当前组件的元素&#xff0c;和 Shadow DOM 中的样式封装类似。 <style scoped lang"scss"> </style> 注意 &#xff1a; 作用域样式并没有消除对 class 的需求…

DN-DETR源码学习记录

DN-DETR是在DAB-DETR的基础上完成的&#xff0c;DN-DETR的作者认为导致DETR类模型收敛慢的原因在于匈牙利匹配所导致的二义性&#xff0c;即匈牙利算法匹配的离散性和模型训练的随机性&#xff0c;导致ground-truth的匹配变成了一个动态的、不稳定的过程。举个例子&#xff0c;…

字节青训营(前端)打卡day01_计网

计算机网络概论 1.前沿和课程介绍 自顶向下、自底向上 网络分层、网络协议、网络应用、HTTP123、CDN GPT. 计算机网络的发展历程可以分为四个阶段&#xff1a;单机、局域网、广域网、互联网 2.蟹堡王帝国 顾客&#xff1a;客户端 分店&#xff1a;服务端 小区转发点&…

【FFmpeg】编码器流程分析

目录1 编译2 调用关系2.1 第一帧没有获取到码流&#xff0c;第二帧获取到一帧码流2.2 送帧为NULL&#xff0c;刷新编码器获取剩余的全部码流3 总结4 感受1 编译 参考文件doc/examples/encode_video.c&#xff0c;使用x264作为编码器&#xff0c;需要先安装x264&#xff0c;编译…

如何用ChatGPT写毕业论文?

老早之前就听说有同学用ChatGPT写论文了 但是一直不觉得人工智能够真的替代人类 正好最近毕业论文开始降重了&#xff0c;超高的重复率愁得我快睡不着了 刷微博突然看到这个有关ChatGPT的问题。 出于好奇的我决定先来试试这个ChatGPT到底能不能帮我解决降重问题哈哈哈 点击…

shell脚本基础之处理脚本输入

处理输入命令行参数读取参数读取脚本名测试参数特殊参数变量参数统计获取所有参数移动变量处理选项查找选项处理简单选项分离选项和参数处理带值的选项getopt 命令命令格式在脚本中使用getoptgetopts命令脚本选项标准化获取用户的输入基本的读取超时隐藏式读取文件中读取在此之…

Linux命令·ifconfig

许多windows非常熟悉ipconfig命令行工具&#xff0c;它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具&#xff0c;也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使…

OpenFeign#1 - FeignClient 是如何注册的?

文章目录EnableFeignClientsFeignClientsRegistrarregisterDefaultConfigurationregisterFeignClientsFeignClientFeignClientFactoryBeanFeignContextfeign(FeignContext)EnableFeignClients 该注解会导致 FeignClientsRegistrar 的注入. Retention(RetentionPolicy.RUNTIME…

Redis AOF

一、Redis AOF 1.简介 目前&#xff0c;redis的持久化主要应用AOF(Append Only File)和RDB两大机制。AOF以日志的形式来记录每个写操作(增量保存),将redis执行过的所有写指令全部记录下来(读操作不记录)。只许追加文件&#xff0c;但不可以改写文件。redis启动之初会读取该文…

自动化测试学习(七)-正则表达式,你真的会用吗?

目录 一、正则表达式在python中如何使用 二、用正则表达式匹配更多模式 三、常用字符分类的缩写代码 总结 所谓正则表达式&#xff08;regex&#xff09;&#xff0c;就是一种模式匹配&#xff0c;学会用正则匹配&#xff0c;就可以达到事半功倍的效果。 一、正则表达式在…

工程管理系统软件 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

在 Web3 里如何寻找靠谱的创新路径——Solv V3 阶段性复盘(上)

作者&#xff1a;Solv 核心团队Solv V3 是 3 月 21 日发布的&#xff0c;到这周一整整三个星期。三周时间产生的实际交易额超过 6,000 万美元&#xff0c;预计在本月内能够破亿。而且从我们手上的 pipeline 来看&#xff0c;这个增长的势头还将持续下去。在几个月内&#xff0c…

「Long HK, Long Crypto」主题酒会在香港圆满举行!Web3er齐聚一堂共叙行业发展

「2023 香港 Web3 嘉年华」是香港有史以来规模最大的加密货币活动之一&#xff0c;邀请了300多位行业领袖、区块链项目创始人、投资人、监管机构代表、专家学者&#xff0c;为每一位参与者带来前沿的 Web3 技术&#xff0c;共同探讨 Web3 未来发展的关键问题。 Web3相关的各大…

OpenCV实战(19)——特征描述符

OpenCV实战&#xff08;19&#xff09;——特征描述符0. 前言1. 特征描述符2. 提升匹配集质量2.1 交叉检查匹配2.2 比率测试2.3 距离阈值3. 完整代码小结系列链接0. 前言 SURF 和 SIFT 关键点检测算法为每个检测到的特征计算位置、方向和比例&#xff0c;比例因子信息可用于定…

RestClient查询文档

文章目录1、RestClient查询文档----快速入门2、查询文档--match、term、range、bool3、查询文档-排序和分页4、高亮1、RestClient查询文档----快速入门 基本步骤 1.先创建SearchRequest对象&#xff0c;调用source方法&#xff08;DSL&#xff09;——>相当于红框内的大jso…