蓝桥·算法赛——第05场

news/2024/12/22 11:07:58/

文章目录

  • 小白入门赛
    • 1-十二生肖
    • 2-欢迎参加福建省大学生程序设计竞赛
    • 3-匹配二元组的数量
    • 4-元素交换
    • 5-下棋的贝贝
    • 6-方程
  • 强者挑战赛
    • 1-元素交换
    • 2-下棋的贝贝
    • 3-方程
    • 4-学《博弈论》的贝贝
    • 5-学《数论》的贝贝
    • 6-学《树论》的贝贝

小白入门赛

1-十二生肖

2-欢迎参加福建省大学生程序设计竞赛

3-匹配二元组的数量

N = int(input())
lst = [0] + list(map(int, input().split()))
s = set()
for i in range(1, N + 1):s.add(i * lst[i])
print(N - len(s)) # 少的数目即存在匹配

4-元素交换

N = int(input())
lst = list(map(int, input().split()))
cnt = 0 # 记录奇数位上1的个数
for i in range(0, N << 1, 2):if lst[i] == 1:cnt += 1
print(min(cnt, N - cnt))

5-下棋的贝贝

from math import sqrtn = int(input())
L = int(sqrt(n)) # 最大正方形边长
ans = 4 * (L - 2) * (L - 2) + 4 * 3 * (L - 2) + 4 * 2
diff = n - L * L # 剩下的棋子数(<= 2L)
if diff > 0 and diff <= L:# 若剩余棋子数(0, L] (边缘棋子 + 3 * 剩余棋子 - 2)ans += 4 * diff - 2
elif diff > L: # diff == 0则输出结果即可# 若剩余棋子数(L, 2L] (两条边的棋子) L + 3 * L - 2 + (diff - L) + 3 * (diff - L) - 2ans += 4 * diff - 4
print(ans)

6-方程

MOD = pow(10, 9) + 7
def multiply(arr1, arr2):arr = [[0, 0], [0, 0]]for i in range(2):for j in range(2):arr[i][j] = arr1[i][0] * arr2[0][j] + arr1[i][1] * arr2[1][j]if arr[i][j] >= MOD: # 存在负数取余数问题arr[i][j] %= MODreturn arrdef qpow(Mat, n): # 计算 Mat 矩阵的 n 次方ans = [[1, 0], [0, 1]] # 单位阵while n > 0:if n & 1 == 1: # 累积ans = multiply(ans, Mat)Mat = multiply(Mat, Mat) # 倍增n >>= 1return ansT = int(input())
for _ in range(T):n, k = map(int, input().split())temp = qpow([[k, -1], [1, 0]], n - 1)print((temp[0][0] * k + temp[0][1] * 2) % MOD)

强者挑战赛

1-元素交换

N = int(input())
lst = list(map(int, input().split()))
cnt = 0 # 记录奇数位上1的个数
for i in range(0, N << 1, 2):if lst[i] == 1:cnt += 1
print(min(cnt, N - cnt))

2-下棋的贝贝

from math import sqrtn = int(input())
L = int(sqrt(n)) # 最大正方形边长
ans = 4 * (L - 2) * (L - 2) + 4 * 3 * (L - 2) + 4 * 2
diff = n - L * L # 剩下的棋子数(<= 2L)
if diff > 0 and diff <= L:# 若剩余棋子数(0, L] (边缘棋子 + 3 * 剩余棋子 - 2)ans += 4 * diff - 2
elif diff > L: # diff == 0则输出结果即可# 若剩余棋子数(L, 2L] (两条边的棋子) L + 3 * L - 2 + (diff - L) + 3 * (diff - L) - 2ans += 4 * diff - 4
print(ans)

3-方程

MOD = pow(10, 9) + 7
def multiply(arr1, arr2):arr = [[0, 0], [0, 0]]for i in range(2):for j in range(2):arr[i][j] = arr1[i][0] * arr2[0][j] + arr1[i][1] * arr2[1][j]if arr[i][j] >= MOD: # 存在负数取余数问题arr[i][j] %= MODreturn arrdef qpow(Mat, n): # 计算 Mat 矩阵的 n 次方ans = [[1, 0], [0, 1]] # 单位阵while n > 0:if n & 1 == 1: # 累积ans = multiply(ans, Mat)Mat = multiply(Mat, Mat) # 倍增n >>= 1return ansT = int(input())
for _ in range(T):n, k = map(int, input().split())temp = qpow([[k, -1], [1, 0]], n - 1)print((temp[0][0] * k + temp[0][1] * 2) % MOD)

4-学《博弈论》的贝贝

5-学《数论》的贝贝

6-学《树论》的贝贝


http://www.ppmy.cn/news/1510659.html

相关文章

最新软件库系统源码/ 免服务器源码/带后台功能/使用链接上传或服务器存储

源码简介&#xff1a; 最新软件库系统源码&#xff0c;它是免服务器的&#xff0c;而且带后台&#xff0c;实现超级管理动态发布&#xff0c;会员系统卡密系统充值的后台功能。注册用户的软件投稿&#xff0c;可以使用链接上传&#xff0c;或者服务器存储。 它带有后台功能&a…

哈啰出行Java开发工程师一面面经(校招)

牛客网最新面经分享面试过程&#xff1a; 小编为参加校招、秋招、金九银十面试季的小伙伴们准备了一份很全很详细的java面试宝典&#xff08;包含各个大厂真题以及最常见的八股文含答案&#xff09;&#xff0c;由于平台篇幅原因&#xff0c;就不在这里一一展示了&#xff0c;…

【微服务】Spring Cloud Alibaba 的介绍以及和主要功能

文章目录 引言主要功能1. **服务发现与注册**2. **分布式配置管理**3. **流量管理与熔断限流**4. **消息驱动**5. **分布式事务管理**6. **远程调用&#xff08;RPC&#xff09;**7. **服务网关**8. **对象存储**9. **全链路跟踪**10. **阿里巴巴中间件支持**11. **高可用与容错…

【python制作一个小程序作为七夕礼物】

制作一个七夕节礼物的小程序&#xff0c;我们可以考虑一个简单的互动程序&#xff0c;比如一个“七夕情侣姓名配对指数计算器”。这个程序将接收两个名字作为输入&#xff0c;然后输出一个随机的“配对指数”和一些浪漫的话语。以下是一个使用Python实现的简单示例&#xff1a;…

【免费】企业级大模型应用推荐:星环科技无涯·问知

无涯问知是星环科技发布的大模型应用系统&#xff0c;那么我们先简单了解下星环科技吧&#xff01; 星环科技&#xff08;股票代码&#xff1a;688031&#xff09;致力于打造企业级大数据和人工智能基础软件&#xff0c;围绕数据的集成、存储、治理、建模、分析、挖掘和流通等数…

Ruby模板引擎:构建动态视图的艺术

标题&#xff1a;Ruby模板引擎&#xff1a;构建动态视图的艺术 在Ruby on Rails的世界里&#xff0c;模板引擎是构建动态网页的基石。它们允许开发者将服务器端的逻辑嵌入到HTML中&#xff0c;实现数据的动态展示。本文将深入探讨Ruby中几种常用的模板引擎&#xff0c;包括ERB…

stm32入门学习14-电源控制

有时候我们的程序中有些触发执行条件&#xff0c;有时这些触发频率很少&#xff0c;我们的程序就一直在循环&#xff0c;这样就很浪费电&#xff0c;我们可以通过PWR电源控制来实现低功耗模式&#xff0c;即只有在触发时才执行程序&#xff0c;其余时间可以关闭一些没必要的设备…

java web.xml文件中各配置项的含义

session-config // 这个元素为该应用中创建的所有session定义默认超时时间&#xff0c;单位是分钟。这个值必须是整数。 // 如果是0或者负数&#xff0c;表示不超时。如果该元素没有设置&#xff0c;容器设置一个默认值。 <session-config> <session-timeout>120…