[acwing周赛复盘] 第 86 场周赛20230114

news2025/1/12 20:02:49

[acwing周赛复盘] 第 86 场周赛20230114

    • 一、本周周赛总结
    • 二、 4794. 健身
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 三、4795. 安全区域
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 四、4796. 删除序列
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • 去吃羊蝎子了,回来补题。
  • T1模拟
  • T2模拟
  • T3DP

二、 4794. 健身

链接: 4794. 健身

1. 题目描述

在这里插入图片描述

2. 思路分析

用模3来归类,计数。

3. 代码实现

# Problem: 健身
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4797/
# 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
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, = RI()
    a = RILST()
    c= Counter()
    ans = 0
    for i,v in enumerate(a):
        p = i%3
        c[p] += v
        if c[p] > c[ans]:
            ans = p
    print(['chest', 'biceps', 'back'][ans])

if __name__ == '__main__':
    solve()

三、4795. 安全区域

链接: 4795. 安全区域

1. 题目描述

在这里插入图片描述

2. 思路分析

最好有纸笔画一下。

  • 用两个set(rs,cs)来记录已记录了了哪行、哪列。
  • 当增加一个车时,记录对应的行列。且分写这个车删除了本行几个点,本列几个点(注意最后分析xy点本身)。
  • 当x不在rs时,代表这行里可以删除一些点,但这些点可能被其他列删过了,因此可删除的的点大概是n-len(cs)-1,但考虑一个情况,如果y在cs中,即这列已被标记了,就会多删一个点,即xy本身(我们说了,先不分析xy点本身)。
  • 因此实际删除的行内点是n - len(cs) - 1 + (y in cs)。
  • 讨论列同理。
  • 最后讨论这个点本身,只有当xy都已标记过时,才不删除,否则要删除这个点。
  • 最后别忘了标记这行列。

3. 代码实现

# Problem: 安全区域
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4798/
# 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
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 = []
    for _ in range(m):
        a.append(RILST())
    rs, cs = set(), set()
    ans = n * n
    ret = []
    for x, y in a:
        if x not in rs:
            ans -= n - len(cs) - 1 + (y in cs)
        if y not in cs:
            ans -= n - len(rs) - 1 + (x in rs)
        ans -= (x not in rs and y not in cs)
        ret.append(ans)
        rs.add(x)
        cs.add(y)
    print(*ret)


if __name__ == '__main__':
    solve()

四、4796. 删除序列

链接: 4796. 删除序列

1. 题目描述

在这里插入图片描述

2. 思路分析

在值域上DP。

  • 操作时会影响临近值,因此考虑打家劫舍那种DP,分类讨论邻居即可。
  • 由于影响条件是x值的x-1,x+1,因此我们按值域的顺序DP即可。
  • 先统计每个值出现次数,如果要这个值,就+=x*cnt[x]。
  • 定义:令f[i][0/1]代表值i,不采用i/采用i的最大得分。
  • 转移:
    • 显然f[i][0] = max(f[i-1]),即不采用i的话,i-1采不采用都可以。
    • f[i][1] = i*cnt[i] + f[i-1][0], 即采用i的话,不能采用i-1。
  • 初始:f[0] = [0,0],题目值域从1开始,因此0没得采用。
  • 答案:max(f[-1])

3. 代码实现

# Problem: 删除序列
# Contest: AcWing
# URL: https://www.acwing.com/problem/content/4799/
# 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
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, = RI()
    a = RILST()
    mx = max(a)
    c = [0] * (mx + 1)
    for x in a:
        c[x] += 1
    f = [[0, 0] for _ in range(mx + 1)]
    for i in range(1,mx+1):
        f[i][0] = max(f[i-1])
        f[i][1] = f[i-1][0] + i*c[i]

    print( max(f[-1]))
if __name__ == '__main__':
    solve()

六、参考链接

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

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

相关文章

基于汽车知识图谱的汽车问答多轮对话系统 详细教程

结果: 1 技术路线 该技术路线主要将KBQA分为三部分,实体识别与实体链接,关系识别,sparql查询,其中每个部分分为一到多种方法实现。具体的处理流程图如下:

大脑的记忆

AI神经网络中的记忆 当前AI发展进入一个瓶颈,大家都意识到还是要继续在人脑中获取AI方向的指引。当然也有科学家说物理世界与心理世界并非一一对应,人类的智能也没必要与物理世界一一对应,甚至本质上都可以是不同的,所以没必要研究大脑认知和大脑的机制,更不需要分子级别…

IDEA structure窗口各标志及功能

文章目录图标对象类型访问权限其他修饰符工具栏图标 对象类型 class 类 interface 接口 enum 枚举 interface 注解 class initializer 代码块 method 方法 field 字段/属性 anonymous class 匿名类 lambda lambda表达式 propertie 访问器(get方法&#xff0…

【Java面试】Queue接口

文章目录BlockingQueue中有哪些方法,为什么这样设计?BlockingQueue是怎么实现的?BlockingQueue中有哪些方法,为什么这样设计? 先看一眼结构,再看具体的分析 为了应对不同的业务场景,Blockin…

拉伯证券|业绩猛增超13倍,主力连续抢筹,这只股收获4连板

成绩陡增股获主力接连抢筹 春节日益接近,A股成交活跃度有所下滑,不过有一些股票节前继续取得主力喜爱。证券时报•数据宝核算,到1月12日收盘,沪深两市共54只个股接连5日或5日以上主力资金净流入。 主力资金净流入继续周期最长的是…

人工智能学习07--pytorch03--tensorboard(下载tensorboard、opencv)

transform 主要是对input图像进行变换(统一尺寸、对图像中的数据进行类的转换) TensorBoard很有用 如:通过loss的变化过程,来看loss的变化是否复合预想。也可以通过loss来选择模型。 TensorBoard,虽然他是TensorFlo…

排序综合(C++版)

目录 排序综合 一、问题描述 二、运行环境说明 三、代码段 四、效果展示 排序综合 备注:大二(上)数据结构课程设计B题 一、问题描述 给定N…

Python asyncio异步编程简单实现

今天继续给大家介绍Python相关知识,本文主要内容是Python asyncio异步编程简单实现。 一、asyncio事件循环简介 asyncio引入了事件循环的概念。事件循环是一个死循环,还循环会检测并执行某些代码。在Python中,引入了asyncio模块后&#xff…

动态内存管理:学习笔记9

目录 一.前言 二.动态内存函数 1.malloc和free 2.calloc函数 3. realloc函数(动态内存空间调整函数) 情形一:扩容时,原内存地址处可以容纳调整后的动态内存 情形二:扩容时,原内存地址无法容纳调整后的动态内存 三.C/C程序…

MATLAB实现费诺编码的计算与分析

一、实验目的 1、理解霍费诺编码的原理。 2、掌握费诺编码的方法和步骤。 3、熟悉费诺编码的效率。 4、本实验用Matlab语言编程实现费诺(Fano)编码。 二、实验环境 windows XP,MATLAB 7 三、实验原理 费诺编码算法如下:在信源…

构建前端项目

1.使用vite构建vue项目 vite构建vue项目,输入以下命令: npm init vitelatest接着按照提示的命令选择项目的名称、框架、语言。接着项目就构建完成了。 接着将构建好的项目:vite-demo拖入vsCode里面,在package.json中可以看到项…

redis基础命令使用

目录 Redis redis存储结构(KV) String string类型介绍 string类型数据的基础操作 string类型数据的扩展操作 List list类型介绍 list类型数据基本操作 list类型数据扩展操作 hash hash类型介绍 hash类型数据的基本操作 hash类型数据扩展操…

傅里叶变换

傅里叶变换 傅里叶变换常用的三个函数 函数一: numpy.fft.fft2: 复数数组 函数二: numpy.fft.fftshift: 将零频率分量移动到频谱中心 函数三: 20*np.log(np.abs(fshift)) 设置频谱的范围 import cv2 import numpy as np import matplotlib.pyplot as pltdef test_1():img cv2…

再说多线程(三)——Mutex类

1.引子在前面2节,我们已经讨论了Lock语句和Monitor类,Locks 和 Monitors 确保 InProcess 线程的线程安全,即由应用程序本身生成的线程,即内部线程。但是,如果线程来自 OutProcess,即来自外部应用程序&#…

Java 诊断利器 Arthas monitor/watch/trace命令

一、监控相关命令介绍 二、监控相关命令 2.1、运行Demo 2.2、monitor 命令 2.2.1、方法监控 2.3、watch 命令 (重要) 2.3.1、观察函数调用返回时的参数、this 对象和返回值 2.3.2、查看函数调用的入参和返回值 2.3.3、深度遍历 x 说明 2.3.4、查…

检验仪器控制怎么停止的

之前介绍仪器控制启动是按维护的调用M和仪器ID组串直接j启动进程,进程在调用Start启动TCP。 组装执行M串用j启动进程 启动TCP通道,成功之后就到f的死循环了 死循环这里容易有个误解,以为Stop是停止仪器接口的。其实这个Stop是判断要不要…

一灯大师,基于imx6ull点亮LED灯

一.imx6ull GPIO原理1. STM32 GPIO回顾我们一般拿到一款全新的芯片,第一个要做的事情的就是驱动其 GPIO,控制其 GPIO 输出高低电平,我们学习 I.MX6U 也一样的,先来学习一下 I.MX6U 的 GPIO。在学习 I.MX6U的 GPIO 之前&#xff0c…

Spark WordCount 案例

文章目录Spark WordCount 案例1、程序连接 Spark2、WordCount 案例示例3、复杂版 WordCount4、Spark 框架WordcountSpark WordCount 案例 1、程序连接 Spark 首先这个Scala spark程序和spark的链接,跟sql编程类似。首先new 一个新的val context SparkContext()对…

谷粒商城-高级篇-Day10-ElasticSearch

初步检索 1、_cat GET /_cat/nodes:查看所有节点 GET/_cat/health:查看es健康状况 GET/_cat/master:查看主节点 GET/_cat/indices:查看所有索引–相当于查询所有数据库 2、索引一个文档 put:http://192.168.205.128:9200/customer/external/1 {"name&qu…

Qt之加载百度离线地图(WebKit和WebEngine)

最近翻看进年前写了一篇关于百度离线地图的博客:Qt加载百度离线地图,发现存在很多问题,比如不能加载折线等图形覆盖物;只支持QtWebKit,不支持QtWebEngine。 之前做项目需要在百度离线地图上绘制Mesh拓扑图,必须添加折线覆盖物,使用的是百度离线地图API V2.1,满足需求。…