蓝桥·算法赛——第06场

devtools/2024/9/26 3:20:40/

文章目录

  • 小白入门赛
    • 1-元宵节快乐
    • 2-猜灯谜
    • 3-数学奇才
    • 4-你不干?有的是帕鲁干!
    • 5-等腰三角形
    • 6-计算方程
  • 强者挑战赛
    • 1-你不干?有的是帕鲁干!
    • 2-等腰三角形
    • 3-计算方程
    • 4-谁是帕鲁?
    • 5-源石开采
    • 6-集合划分

小白入门赛

1-元宵节快乐

2-猜灯谜

n = int(input())
a = list(map(int, input().split()))
for i in range(n):left = i - 1 if i > 0 else -1right = i + 1 if i < n-1 else 0print(a[left] + a[right], end=" ")

3-数学奇才

n = int(input())
a = list(map(int, input().split()))
# 当负数个数小于等于总数一半时,可以将 1 ~ i、1 ~ i - 1 翻转# 总次数为 2 * 负数个数,不超过 n
# 当负数超过一半,先将所有数翻转,再按上述方法,# 总次数为 2 * 小于一半 + 1,不超过 n
print(sum(i if i > 0 else -i for i in a))

4-你不干?有的是帕鲁干!

T = int(input())
for _ in range(T):x = int(input())if x % 8 == 0 and x != 0:print("Yes")print("{0} {1}".format(x // 4 - 1, x // 4 + 1))else:print("No")

5-等腰三角形

N = int(input())
A = sorted(list(map(int, input().split())))
B = sorted(list(map(int, input().split())))pa = 0; pb = 0; ans = 0
while pa < N and pb < N:if 2 * A[pa] > B[pb]:pa += 1; pb += 1ans += 1else:pa += 1
print(ans)

6-计算方程

from math import sqrt, log, floort = int(input())
for _ in range(t):k, m = map(int, input().split())left = 1; right = m ** 2while left <= right:mid = (left + right) // 2num = sqrt(mid) + floor(log(mid, k))if num > m:right = mid - 1else:left = mid + 1print(left)

强者挑战赛

1-你不干?有的是帕鲁干!

T = int(input())
for _ in range(T):x = int(input())if x % 8 == 0 and x != 0:print("Yes")print("{0} {1}".format(x // 4 - 1, x // 4 + 1))else:print("No")

2-等腰三角形

N = int(input())
A = sorted(list(map(int, input().split())))
B = sorted(list(map(int, input().split())))pa = 0; pb = 0; ans = 0
while pa < N and pb < N:if 2 * A[pa] > B[pb]:pa += 1; pb += 1ans += 1else:pa += 1
print(ans)

3-计算方程

from math import sqrt, log, floort = int(input())
for _ in range(t):k, m = map(int, input().split())left = 1; right = m ** 2while left <= right:mid = (left + right) // 2num = sqrt(mid) + floor(log(mid, k))if num > m:right = mid - 1else:left = mid + 1print(left)

4-谁是帕鲁?

5-源石开采

def build(o, L, R): # 建树if L == R: # 划分到一个区间Tree[o][0], Tree[o][1] = a[L], -1returnMid = (L + R) >> 1 # 划分build(o << 1, L, Mid) # o 的左端点和管辖区间build(o << 1 | 1, Mid + 1, R) # o 的右端点和管辖区间Tree[o][0] = max(Tree[o << 1][0], Tree[o << 1 | 1][0])Tree[o][1] = max(Tree[o << 1][1], Tree[o << 1 | 1][1])Tree[o][1] = max(Tree[o][1], min(Tree[o << 1][0], Tree[o << 1 | 1][0]))def query(left, right, o, L, R): # 返回 [left, right] 中的最大值和第二大值if left <= L and R <= right: # 当 [left, right] 完全覆盖 [L, R]return Tree[o]Mid = (L + R) >> 1 # 划分区间if right <= Mid: # 全在左边return query(left, right, o << 1, L, Mid)elif left > Mid: # 全在右边return query(left, right, o << 1 | 1, Mid + 1, R)else: # Mid 在 [left, right] 中间temp1 = query(left, right, o << 1, L, Mid) # 左边temp2 = query(left, right, o << 1 | 1, Mid + 1, R) # 右边ans = [max(temp1[0], temp2[0]), max(max(temp1[1], temp2[1]), min(temp1[0], temp2[0]))]return ans # 返回一个数组n, q = map(int, input().split())
a = [0] + list(map(int, input().split()))
Tree = [[0, 0] for _ in range(n << 2)] # 线段树(第一大, 第二大)
build(1, 1, n) # 1.建树(结点编号, a 左端点, a 右端点)
cnt = 0 # 统计源石数量
for _ in range(q):left, right = map(int, input().split())# (查询区间左端点, 查询区间右端点, 结点编号, 结点管辖左端点, 结点管辖右端点)cnt += sum(query(left, right, 1, 1, n))
m = int(input()) # 博弈论取石头
print(cnt, "\nred" if cnt % (m + 1) else "\nblue")

6-集合划分


http://www.ppmy.cn/devtools/95886.html

相关文章

《SPSS零基础入门教程》学习笔记——05.模型入门

文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归&#xff08;分析 -> 回归 -> 线性&#xff09;曲线估计&#xff08;分析 -> 回归 -> 曲线估计&#xff09; 二元Logistic回归&#xff08;分析 -> 回归…

ArduPilot二次开发零基础教程

文章目录 前言一、概述二、开发环境搭建三、多旋翼MAVROS自主控制接口四、无人船&#xff08;车&#xff09;MAVROS自主控制接口五、二次开发基础六、控制LED灯七、自定义串口驱动八、Guided控制接口九、输出自定义PWM信号十、添加自定义MAVLINK消息和QGC通信十一、自定义日志十…

优化 SQL 查询性能:深入理解 EXPLAIN 命令

优化 SQL 查询性能:深入理解 EXPLAIN 命令 在 MySQL 数据库管理中,优化 SQL 查询性能是确保高效数据处理的关键。EXPLAIN 命令是分析和优化 SQL 查询的强大工具,它帮助我们理解查询执行计划,从而找到性能瓶颈并进行优化。本文将详细解释 EXPLAIN 命令返回的各个列的含义,…

python绘制蕨菜叶分形

一花一叶一世界,一草一木一浮生. 使用了四个不同的线性变换&#xff0c;根据概率选择其中一个变换并更新 x 和 y 坐标。然后将生成的绿色点绘制出来&#xff0c;形成一片蕨菜叶。 import numpy as np import matplotlib.pyplot as pltdef fern_fractal(num_points):# 初始化坐…

Python — — GPU编程

Python — — GPU编程 要想将Python程序运行在GPU上&#xff0c;我们可以使用numba库或者使用cupy库来实现GPU编程。 壹、numba Numba 是一个开源的 JIT (Just-In-Time) 编译器&#xff0c;它可以将 Python 代码转换成机器代码以提高性能。Numba 特别适用于需要高性能计算的…

SQLite3使用接口写入二进制文件

使用接口的方式写入二进制文件 &#xff0c;有二种方案。 一、全部文件 一次性写下到数据中 使用sqlite3_bind_blob接口 FILE* fpfopen("user.bmp","rb"); iLenfread(buffer,1,65535,fp); fclose(fp);sqlite3_prepare(pDB,"insert into user values …

Golang多版本环境安装并存

1. 准备 请先安装最新版本的Go&#xff0c;详见 https://go.dev/doc/install go version2. 配置镜像加速 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct3. 安装Go指定版本 Golang官方提供dl工具来实现多版本的Go环境管理&#xff0c;详见项目&#…

Kali Linux 命令大全

一、引言 Kali Linux 作为一款专为渗透测试和安全研究设计的操作系统&#xff0c;拥有丰富的命令行工具&#xff0c;熟练掌握这些命令对于高效地进行安全测试和分析至关重要。本文将为您详细介绍 Kali Linux 中常用的命令&#xff0c;涵盖系统信息获取、文件操作、网络分析、用…