[abc复盘] abc297 20230409

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

六、参考链接

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AOP通知中获取数据

AOP通知中获取数据 之前我们写AOP仅仅是在原始方法前后追加一些操作&#xff0c;接下来我们要说说AOP中数据相关的内容&#xff0c;我们将从获取参数、获取返回值和获取异常三个方面来研究切入点的相关信息。 获取切入点方法的参数&#xff1a;所有的通知类型都可以获取参数 …

【JSP学习笔记】3.JSP 指令及动作元素

前言 本章介绍JSP的指令和动作元素。 JSP 指令 JSP指令用来设置整个JSP页面相关的属性&#xff0c;如网页的编码方式和脚本语言。 语法格式如下&#xff1a; <% directive attribute"value" %>指令可以有很多个属性&#xff0c;它们以键值对的形式存在&am…

数云融合|新手入门,5分钟秒懂开源

目录 一、开源软件开源领域的两大组织&#xff1a;FSF和OSI 二、开源许可证开源意味着免费吗&#xff1f; 三、开源技术应用领域四、总结 一、开源软件 开源即开放源代码&#xff0c;他的核心是源代码公开&#xff0c;任何人都可以查看、使用、修改和分发。与之相对的是闭源&a…

技术+商业“双轮”驱动,量旋科技加速推进全方位的量子计算解决方案

【中国&#xff0c;深圳】4月14日&#xff0c;在第三个“世界量子日”&#xff0c;以“‘双轮’驱动 加速未来”为主题的量旋科技2023战略发布会在线上举办。 本次发布会&#xff0c;量旋科技全线升级了三大业务线产品&#xff1a;其中重点布局的超导量子计算体系产品&#xf…

DolphinScheduler×T3出行 | 打造车联网一站式数据应用交互体验

点击蓝字 关注我们 用户案例 | T3 出行 业务挑战 作为一家车联网驱动的公司&#xff0c;T3出行汇聚了“人、车、路、云”各端的海量数据。为了承载如此多元化的数据以更好地释放数据价值&#xff0c;T3出行构建了以Apache Hudi为基础的企业级的数据湖&#xff0c;并在此之上搭建…

1 分钟给 Siri 升个级!从智Z变身 ChatSiri!

原文链接&#xff1a;https://forum.laf.run/d/79/17 众所周知&#xff0c;Siri 是一个智 Z&#xff01;那么如果能接入大火的 chatGPT&#xff0c;是不是就会从智 Z 变成人工智能&#xff1f;&#xff01; 众所周知&#xff0c;Laf 是一个集函数、数据库、存储为一体的云开发…

第五章_Redis事务

是什么 官网 能做什么 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 数据库事务 1 单独的隔离操作 Redis的事务仅仅是保证事务里的操作会被连续独占的执行&#xff0c;redis命令执行是单线程架构&#xff0c;在执行完事务内所有指令前是不可…

消息队列kafka及zookeeper机制

目录 一、zookeeper 1、zookeeper简介 2、zookeeper特点 3、zookeeper工作模式及机制 4、zookeeper应用场景及选举机制 5、zookeeper集群部署 ①实验环境 ②安装zookeeper 二、消息队列kafka 1、为什么要有消息队列 2、使用消息队列的好处 3、kafka简介 4、kafka…

【云原生】Kubernetes(k8s)之容器的探测

Kubernetes&#xff08;k8s&#xff09;之容器的探测 一、探测类型及使用场景1.1、startupProbe&#xff08;启动探测&#xff09;1.2、readinessProbe&#xff08;就绪探测&#xff09;1.3、livenessProbe&#xff08;存活探测&#xff09; 二、检查机制三、探测结果四、容器探…

MySQL - 基于SSL安全连接的主从复制

目录 &#x1f341;主从复制的原理 &#x1f341;部署master &#x1f341;部署slave &#x1f341;测试SSL主从复制 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 生产环境中一台mysql主机存在单点故障&#xff0c;所…

SWCF QA集锦待查收 (车联网与V2X、自动驾驶、5G毫米波、射频测试、频谱监测与规划等)

感谢大家的观看与支持&#xff01;我们为大家整理了本次发布会中的演讲资料&#xff0c;汇总了直播过程中的热点问题并请讲师进行了详细解答&#xff0c;在此整理分享给大家&#xff01; 演讲Q&A Q&#xff1a;目前5G天线支持最大的MIMO是多少&#xff1f; A&#xff1a;…

计算机:理解操作系统:内存篇(上)

内存篇 1. 什么是内存2. C/C内存模型2.1 代码段和数据段2.2 堆和栈 本节是操作系统系列教程的第三篇文章&#xff0c;属于操作系统第一章即基础篇&#xff0c;在真正开始操作系统相关章节前在这一部分回顾一些重要的主题&#xff0c;算是温故知新吧&#xff0c;以下是目录&…

ICMP隧道技术实现防火墙穿透

1.在mac os的虚拟机里准备三台kali 三台主机ip地址分别是 192.168.1.15&#xff0c;192.168.1.16&#xff0c;192.168.1.17&#xff0c; 为方便描述 依次把他们暂且命名为主机A,主机B,主机C 2.在主机C 上打开终端&#xff0c;输入 cd /usr/local/src 然后新建一个hello.txt 文…

深入浅出JS定时器:从setTimeout到setInterval

前言 当谈到 JavaScript 编程语言最基本的概念时&#xff0c;定时器就是一个必须掌握的知识点。在编写网站时&#xff0c;你经常会遇到需要在一定时间间隔内执行一些代码的情况。这时候&#xff0c;JavaScript 定时器就可以派上用场了。 什么是定时器&#xff1f; JS 定时器是…

Mybatis(三)

1、mybatis中的连接池以及事务控制 原理部分了解&#xff0c;应用部分会用 mybatis中连接池使用及分析 mybatis事务控制的分析2、mybatis基于XML配置的动态SQL语句使用 会用即可 mappers配置文件中的几个标签&#xff1a; <if> …

Linux远程连接虚拟机超时,且ip地址找不到问题解决

ip地址虚拟机自动更改&#xff1a; 原因&#xff1a;Linux没有正常关机 解决&#xff1a;从虚拟机在自己电脑上的文件地址中bin目录下&#xff0c;前面几个以.lck的文件全部删除 Linux远程连接虚拟机超时&#xff1a; 原因可能跟上面是一样的&#xff0c;IP地址自动修改之后自…

交互式电子沙盘数字沙盘大数据系统开发第8课

交互式电子沙盘数字沙盘大数据系统开发第8课 这次我们完成的功能为拖动一个外部的UI对象到球球上&#xff1a; private void Button_PreviewMouseMove(object sender, MouseEventArgs e) { if(e.LeftButton MouseButtonState.Pressed) DragDr…

为docker安装图形界面和配置远程桌面连接

由于远程桌面访问必须要打开端口3389&#xff0c;所以在启动docker中ubuntu系统的时候要首先将linux系统的3389端口映射出来 docker run -tid -p 3389:3389 --name ceshi --privilegedtrue ceshi /bin/bash 接下来进入到ubuntu中 docker exec -it ceshi /bin/bash 首先安装X…

扬帆优配|TMT板块密集发布减持计划 火爆行情潜藏估值难以匹配隐忧

4月以来&#xff0c;多家上市公司发表股东减持公告&#xff0c;其中一季度大热的TMT&#xff08;科技、媒体和电信&#xff09;板块的股东减持最为引人注目。 32只TMT股拟减持上限占比超1% 到4月18日&#xff0c;4月以来已有61家TMT板块上市公司发布减持方案。从拟变动数量上限…

增广拍卖——二跳页下的拍卖机制探索

1. 引言 本文提出的方案已被WSDM 2023接收&#xff0c;论文&#xff1a;Boosting Advertising Space: Designing Ad Auctions for Augment Advertising&#xff0c; 下载&#xff1a;https://dl.acm.org/doi/abs/10.1145/3539597.3570381 信息流产品为了保障用户体验通常会严格…