2025第十六屆藍橋杯PythonB組部分題解

一、攻擊次數

題目描述

小藍操控三個英雄攻擊敵人,敵人初始血量2025:

  • 第一個英雄每回合固定攻擊5點
  • 第二個英雄奇數回合攻擊15點,偶數回合攻擊2點
  • 第三個英雄根據回合數除以3的余數攻擊:余1攻2點,余2攻10點,余0攻7點

游戲從第1回合開始,當敵人血量≤0時結束,求結束時的回合數。

解題思路

模擬戰斗過程:

  1. 每個回合依次計算三個英雄的攻擊總和
  2. 更新敵人血量并檢查是否≤0
  3. 注意回合數需減1(回合從1開始計數)

代碼實現

r = 2025
k = 1
while r > 0:r -= 5if k % 2 == 1:r -= 15else:r -= 2if k % 3 == 1:r -= 2elif k % 3 == 2:r -= 10else:r -= 7k += 1
print(k - 1)

二、最長字符串

題目描述

從單詞本中找出最長優美字符串:

  • 長度為1時本身是優美字符串
  • 長度>1時,存在前n-1個字符重組后的優美字符串
  • 多個解時取字典序最小

解題思路

  1. 對單詞去重并按長度、字典序排序
  2. 維護優美字符串集合
  3. 動態驗證并更新最長結果

代碼實現

s = '''bbccbddbca'''
s = s.split('\n')
g = sorted(set(s), key=lambda x: (len(x), x))
v = set()
ans = ''
mx = -1
dd = []
for x in g:m = len(x)if m == 1:v.add(x)ans = xmx = 1dd.append(x)else:t = ''.join(sorted(x[:-1]))if t in v:dd.append(x)if m >= mx:mx = mans = min([ans, x]) if m == mx else xv.add(''.join(sorted(x)))
dd = sorted(set(dd), key=lambda x: (-len(x), x))
print(ans)

三、LQ圖形

題目描述

用字符Q繪制L型圖案:

  • 豎筆劃寬度w,高度h
  • 橫筆劃寬度v+w

解題思路

分兩部分構建:

  1. 豎部:h行,每行w個Q
  2. 橫部:w行,每行(v+w)個Q

代碼實現

w, h, v = map(int, input().split())
ans = []
for _ in range(h):ans.append(['Q']*w)
for _ in range(w):ans.append(['Q']*(v+w))
for row in ans:print(''.join(row))

四、最多次數

題目描述

從給定字符串s中切割最多數量的指定3字符組合(6種可能)。

解題思路

貪心策略:

  1. 滑動窗口遍歷字符串
  2. 遇到有效組合立即標記使用
  3. 跳過已使用字符

代碼實現

s = input()
n = len(s)
v = [False]*n
d = {'lqb','lbq','qlb','qbl','blq','bql'}
ans = 0
for i in range(2, n):if not v[i-2] and not v[i-1] and s[i-2:i+1] in d:ans += 1v[i-2:i+1] = [True]*3
print(ans)

五、A * B Problem

題目描述

計算滿足X_AX_B + Y_AY_B ≤ L的正整數組合數。

解題思路

  1. 預處理乘積頻次
  2. 使用前綴和優化查詢
  3. 數學優化枚舉過程

代碼實現

def f2(l):from math import isqrtv = [0]*(l+1)for i in range(1, l+1):for j in range(i, l//i +1):if i*j <= l:v[i*j] += 2 - (i==j)p = [0]*(l+1)for i in range(1, l+1):p[i] = p[i-1] + v[i]return sum(v[i] * p[l-i] for i in range(1, l+1))
print(f2(int(input())))

六、園藝

題目描述

保留最長的等間隔遞增樹列。

解題思路

動態規劃:

  • dp[i][d]表示以i結尾、間隔d的最長序列
  • 枚舉前驅樹更新狀態

代碼實現

n = int(input())
a = list(map(int, input().split()))
dp = [[1]*(n+1) for _ in range(n)]
for i in range(n):for j in range(i):if a[i]>a[j] and (d:=i-j):dp[i][d] = max(dp[i][d], dp[j][d]+1)
print(max(max(row) for row in dp))

七、書架還原

題目描述

通過交換操作將亂序書恢復順序,求最少操作次數。

解題思路

環分解:

  • 每個環需要(環長-1)次操作
  • 總次數=Σ(環長-1)

代碼實現

n = int(input())
a = list(map(int, input().split()))
vis = [False]*n
ans = 0
for i in range(n):if not vis[i] and a[i]!=i+1:cnt = 0j = iwhile not vis[j]:vis[j] = Truej = a[j]-1cnt += 1ans += cnt-1
print(ans)

八、異或和

題目描述

計算ΣΣ(a_i⊕a_j)*(j-i)的值。

解題思路

按位統計貢獻:

  • 維護每位0/1的出現位置和
  • 計算每位對最終結果的貢獻

代碼實現

n = int(input())
a = list(map(int, input().split()))
ans = 0
for bit in range(20):cnt0 = cnt1 = sum0 = sum1 = 0for i in range(n):if (a[i] >> bit) & 1:ans += (cnt0*i - sum0) * (1<<bit)cnt1 += 1sum1 += ielse:ans += (cnt1*i - sum1) * (1<<bit)cnt0 += 1sum0 += i
print(ans)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901371.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901371.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901371.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新手寶塔部署thinkphp一步到位

目錄 一、下載對應配置 二、加載數據庫 三、添加FTP? 四、上傳項目到寶塔? 五、添加站點? 六、配置偽靜態 七、其他配置 開啟監控 八、常見錯誤 一、打開寶塔頁面&#xff0c;下載對應配置。 二、加載數據庫 從本地導入數據庫文件 三、添加FTP 四、上傳項目到寶塔…

2025年,HarmonyOS認證學習及考試

HarmonyOS應用開發者認證考試 基礎認證 通過系統化的課程學習&#xff0c;熟練掌握 DevEco Studio&#xff0c;ArkTS&#xff0c;ArkUI&#xff0c;預覽器&#xff0c;模擬器&#xff0c;SDK 等 HarmonyOS 應用開發的關鍵概念&#xff0c;具備基礎的應用開發能力。 高級認證…

3-1 Git分布式版本控制特性探討

Git 的分布式版本控制特性是其核心優勢之一,它使 Git 在版本管理方面具有高度的靈活性、可靠性和高效性。以下從多個方面來理解這一特性: 分布式存儲 在 Git 中,每個開發者的本地機器上都擁有完整的版本庫,包含了項目的所有歷史記錄和元數據。這與集中式版本控制系統(如…

flutter 桌面應用之右鍵菜單

?在 Flutter 桌面應用開發中&#xff0c;context_menu 和 contextual_menu 是兩款常用的右鍵菜單插件&#xff0c;各有特色。以下是對它們的對比分析&#xff1a;? context_menu 集成方式&#xff1a;?通過 ContextMenuArea 組件包裹目標組件&#xff0c;定義菜單項。?掘金…

Tips:用proxy解決前后端分離項目中的跨域問題

在前后端分離項目中&#xff0c;"跨域問題"是瀏覽器基于同源策略&#xff08;Same-Origin Policy&#xff09;對跨域請求的安全限制。當你的前端&#xff08;如運行在 http://localhost:3000 &#xff09;和后端&#xff08;如運行在 http://localhost:8080 &#…

基于 Qt 的圖片處理工具開發(一):拖拽加載與基礎圖像處理功能實現

一、引言 在桌面應用開發中&#xff0c;圖片處理工具的核心挑戰在于用戶交互的流暢性和異常處理的健壯性。本文以 Qt為框架&#xff0c;深度解析如何實現一個支持拖拽加載、亮度調節、角度旋轉的圖片處理工具。通過嚴謹的文件格式校驗、分層的架構設計和用戶友好的交互邏輯&am…

設計模式:依賴倒轉原則 - 依賴抽象,解耦具體實現

一、為什么用依賴倒轉原則&#xff1f; 在軟件開發中&#xff0c;類與類之間的依賴關系是架構設計中的關鍵。如果依賴過于緊密&#xff0c;系統的擴展性和維護性將受到限制。為了應對這一挑戰&#xff0c;依賴倒轉原則&#xff08;Dependency Inversion Principle&#xff0c;…

vue+d3js+fastapi實現天氣柱狀圖折線圖餅圖

說明&#xff1a; vued3jsfastapi實現天氣柱狀圖折線圖餅圖 效果圖&#xff1a; step0:postman 1. 生成天氣數據&#xff08;POST請求&#xff09;&#xff1a;URL: http://localhost:8000/generate-data/?year2024&month3&seed42 方法: POST Headers:Content-Type:…

UE5,LogPackageName黃字警報處理方法

比如這個場景&#xff0c;淘寶搜索&#xff0c;ue5 T臺&#xff0c;轉為ue5.2后&#xff0c;選擇物體&#xff0c;使勁冒錯。 LogPackageName: Warning: DoesPackageExist called on PackageName that will always return false. Reason: 輸入“”為空。 2. 風險很大的刪除法&…

量子代理簽名:量子時代的數字授權革命

1. 量子代理簽名的定義與核心原理 量子代理簽名&#xff08;Quantum Proxy Signature, QPS&#xff09;是經典代理簽名在量子信息領域的延伸&#xff0c;允許原始簽名者&#xff08;Original Signer&#xff09;授權給代理簽名者&#xff08;Proxy Signer&#xff09;代為簽署文…

【ESP32-C6】Base on esptool commands to enable Flash Encryption and Secure Boot

Please refer to Security Guides Security Overview Flash Encryption Secure Boot v2 Security Features Enablement Workflows Vulnerabilities You can base on “esp-idf/examples/security/flash_encryption” example for testing. Partition Table setting&#…

Kotlin 學習-方法和參數類型

/*** kotlin 的方法有三種* */fun main() {/*** 方法一* 1.普通類的成員方法申明與調用* &#xff08;1&#xff09;需要先構建出實例對象&#xff0c;才能訪問成員方法* &#xff08;2&#xff09;實例對象的構建只需要在類名后面加上()* */Person().test()/*** 方法二&#x…

頭歌 | WPS文檔基本操作

若為出現預期結果可私信我答疑 2025年4月9日 第1關&#xff1a;新建WPS文檔和保存文檔 在本地創建一個1.sh,內容寫入echo 我的第一個WPS文檔.docx創建成功點擊工具欄 點擊上傳文件把剛剛創建的1.sh上傳 點擊圖形化 點擊workspace>userfiles, 復制上傳的文件1.sh返回上一級…

使用docker 安裝向量數據庫Milvus

Miluvs 官網 www.milvus.io/ https://milvus.io/docs/zh/install_standalone-docker-compose-gpu.md 一、基本概念 向量數據庫&#xff1a;Milvus是一款云原生向量數據庫&#xff0c;它支持多種類型的向量&#xff0c;如浮點向量、二進制向量等&#xff0c;并且可以處理大規模…

ps 人像學習

視頻&#xff1a; 一ps快捷鍵 1.1 創建圖層 ctrlj 1.2 放大縮小圖片的大小 按住alt 滾輪 1.3 移動圖片 空格 左鍵 1.4 撤回 ctrlz 二 精修的第一步是去除斑點&#xff0c;瑕疵&#xff0c; 2.1 污點修復畫筆工具 新建一個圖層&#xff0c;點擊污點修復工具進行修復…

數據結構第五版【李春葆】

? 數據結構教程上機實驗指導第5版&#xff08;李春葆主編&#xff09;.pdf 數據結構教程&#xff08;第5版&#xff09;&#xff08;李春葆&#xff09;.pdf 數據結構教程&#xff08;第五版&#xff09;課后習題參考答案&#xff08;李春葆&#xff09;.pdf 數據結構教…

(二十三)安卓開發中數據存儲之Room詳解

在安卓開發中&#xff0c;Room 是一個強大的本地數據庫解決方案&#xff0c;它是 Android Jetpack 的一部分&#xff0c;基于 SQLite 構建&#xff0c;提供了更高層次的抽象。Room 簡化了數據庫操作&#xff0c;減少了樣板代碼&#xff0c;同時支持與 LiveData 和 ViewModel 的…

[C++面試] 初始化相關面試點深究

一、入門 1、C中基礎類型的初始化方式有哪些&#xff1f;請舉例說明 ?默認初始化? 對于全局變量和靜態變量&#xff0c;基礎類型&#xff08;如int、float、double等&#xff09;會被初始化為 0&#xff1b;而對于局部變量&#xff0c;其值是未定義的&#xff0c;包含隨機…

網絡安全之-信息收集

域名收集 域名注冊信息 站長之家 https://whois.chinaz.com/ whois 查詢的相關網站有:中國萬網域名WHOIS信息查詢地址: https://whois.aliyun.com/西部數碼域名WHOIS信息查詢地址: https://whois.west.cn/新網域名WHOIS信息查詢地址: http://whois.xinnet.com/domain/whois/in…

Linux網絡http與https

應用層協議HTTP 提示 因為現在大多數都是https&#xff0c;所以就用https來介紹http&#xff0c;https比http多了一個加密功能&#xff0c;不影響介紹http。 什么是http 雖然我們說, 應用層協議是我們程序猿自己定的. 但實際上, 已經有大佬們定義了一些現成的, 又非常好用的…