第十五屆藍橋杯大賽軟件賽省賽Python 大學 C 組題目試做(下)【本期題目:砍柴,回文字符串】

okk,大伙,這一期我們就把C組的題目刷完。
本期題目:砍柴,回文字符串

請添加圖片描述

文章目錄

  • 砍柴
    • 題目
    • 思路分析
      • 舉個栗子
      • 思路總結
    • 代碼
  • 回文字符串
    • 題目
    • 思路分析
    • 代碼
  • 感謝大伙觀看,別忘了三連支持一下
  • 大家也可以關注一下我的其它專欄,同樣精彩喔~
  • 下期見咯~

砍柴

題目

題目鏈接:砍柴

在這里插入圖片描述
在這里插入圖片描述
本題所包含的算法:博弈論 + 質數篩法 + 動態規劃

思路分析

首先,我們先理解一下題意,每個人都能砍下長度為質數的距離,當長度只剩 1 或 0 的時候,這個人失敗。

這里就是一個經典的博弈論的問題,每個人都會去選擇最優解,那么對于每一個數都是有一個 必勝態 或者 必敗態

那什么時候是必敗態呢?

(以題目中,小藍先手為例)
就是當 小藍砍下任意長度后,對方都處于必勝態,則這就是必敗態

反之,當有一種情況能夠讓對方進入必敗態,那這就是必勝態

舉個栗子

請添加圖片描述
這個數是 1 或者 0,必敗態。
這個數是 2 ,砍下 2 對方處于必敗態,故為必勝態。
這個數是 3 ,砍下 2 或 3 對方處于必敗態,故為必勝態。
這個數是 4 ,砍下 3 對方處于必敗態,故為必勝態。
這個數是 5 ,砍下 5 對方處于必敗態,故為必勝態。
6,7,8 都是必勝態。
這個數是 9 ,能砍的數只有 2, 3, 5, 7 ,但無論選哪個數,對方都處于必勝態,故為必敗態。
……
以此類推

思路總結

首先,它要砍質數,所以我們可以先預處理出所有的質數。
然后,再預處理出 1e5 以內所有數的狀態。
最后,再讀取題目的所有數,一一對應即可。
OK,就是這樣,來看代碼吧。

代碼

def prime(n):z = []for i in range(2, n + 1):for j in range(2, int(pow(i, 0.5)) + 1):if i % j == 0:breakelse:z.append(i)# 所有數據范圍內的質數return zt = int(input())
x = [int(input()) for _ in range(t)]
n = max(x) + 1dp = [0] * n
prime_numbers = prime(n)for i in range(n):if dp[i] == 0:for p in prime_numbers:if i + p >= n:breakdp[i+p] = 1for xi in x:print(dp[xi])

回文字符串

題目

題目鏈接:回文字符串
在這里插入圖片描述
在這里插入圖片描述

思路分析

這題就比較簡單了,它就是一個判斷回文字符串的題目,就是增加了一個特殊情況的判斷。

我們來分析一下 ——
首先,按照題目所說,能在字符串開頭增加指定字符。
我們能夠將字符串分成 3 類 :

  1. 左邊的指定字符串比右邊多
  2. 右邊比左邊多
  3. 整個字符串都是指定字符

左邊多,那這個肯定就不是了。
右邊多,那它就有可能是。
整個都是指定字符串,那肯定是。

所以,我們主要需要判斷的就是右邊多的情況,我們的判斷是從去掉兩側
指定字符串之后開始計算,從中間往兩側去判斷。

分析到這里,我們來看看代碼吧。

代碼

n = int(input())
for _ in range(n):s = ' ' + input() # 讓下標從 1 開始for l in range(1, len(s)):if not (s[l] == 'l' or s[l] == 'q' or s[l] == 'b'):breakr = len(s)for i in range(1, len(s)):if not (s[r - i] == 'l' or s[r - i] == 'q' or s[r - i] == 'b'):r -= ibreakif r == len(s): # 整個字符串都是指定字符print('Yes')continueif (r - l + 1) % 2 != 0: # 找去掉兩側指定字符串后的中間位置l = r = (r + l) // 2else:l = (r + l) // 2r = l + 1while l > 0: # 判斷是否回文if s[l] != s[r]:print('No')breakl -= 1r += 1else:print('Yes')

感謝大伙觀看,別忘了三連支持一下

大家也可以關注一下我的其它專欄,同樣精彩喔~

下期見咯~

請添加圖片描述

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

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

相關文章

Design Compiler:庫特征分析(ALIB)

相關閱讀 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 簡介 在使用Design Compiler時,可以對目標邏輯庫進行特征分析,并創建一個稱為ALIB的偽庫(可以被認為是緩存)&…

MySQL索引原理:從B+樹手繪到EXPLAIN

最近在學后端,學到了這里做個記錄 一、為什么索引像書的目錄? 類比:500頁的技術書籍 vs 10頁的目錄缺點:全表掃描就像逐頁翻找內容優點:索引將查詢速度從O(n)提升到O(log n) 二、B樹手繪課堂 1. 結構解剖&#xff0…

全連接RNN反向傳播梯度計算

全連接RNN反向傳播梯度計算 RNN數學表達式BPTT(隨時間的反向傳播算法)參數關系網絡圖L對V的梯度L對U的梯度L對W和b的梯度 RNN數學表達式 BPTT(隨時間的反向傳播算法) 參數關系網絡圖 L對V的梯度 L對U的梯度 L對W和b的梯度

C++高效讀取大規模文本格式點云(windows)

需使用VS2017及以上版本&#xff0c;C語言標準選擇C17&#xff0c;支持OpenMP。 執行效率明顯優于ifstream stof。 // 點云數據結構 struct PointXYZ {std::array<float, 3> coord; };float string_to_float_fast(const std::string& str) {float value;auto [p…

【Linux】進程信號的捕捉處理

個人主頁~ 進程信號的捕捉處理 一、信號捕捉處理的概述1、信號捕捉處理全過程2、用戶態和內核態的區別&#xff08;一&#xff09;用戶態&#xff08;二&#xff09;內核態&#xff08;三&#xff09;用戶態與內核態的切換&#xff08;四&#xff09;硬件條件 二、再談進程地址…

Nyquist內置函數-概述

1 Nyquist內置函數-概述 本章提供奈奎斯特&#xff08;Nyquist&#xff09;語言參考。操作按功能和抽象級別分類。奈奎斯特在兩個重要級別上實現&#xff1a;“高級”級別支持行為抽象&#xff0c;這意味著像 stretch 和 at 這樣的操作可以應用。這些函數是典型用戶期望使用的…

數據驅動防災:AI 大模型在地質災害應急決策中的關鍵作用。基于DeepSeek/ChatGPT的AI智能體開發

全球氣候變化加劇了滑坡、泥石流等地質災害的發生頻率與不確定性&#xff0c;傳統基于統計與物理模型的預測方法常受限于?數據稀疏性?與?動態耦合復雜性?。近年來&#xff0c;AI智能體&#xff08;AI Agents&#xff09;與大型語言模型&#xff08;LLMs&#xff09;的突破為…

光譜相機在工業中的應用

光譜相機&#xff08;多光譜、高光譜、超光譜成像技術&#xff09;在工業領域通過捕捉物質的光譜特征&#xff08;反射、透射、輻射等&#xff09;&#xff0c;結合化學計量學與人工智能算法&#xff0c;為工業檢測、質量控制和工藝優化提供高精度、非接觸式的解決方案。以下是…

Dify工作流中如何去除deepseek-r1思考內容

在工作流中deepseek-r1的think標簽內部的內容&#xff0c;很容易讓工作流其他的llm產生幻覺&#xff0c;導致不能良好的生成目標效果。 我們通過代碼的方式讓deepseek-r1既有think思考鏈的效果&#xff0c;又不傳遞思考鏈。 工作流的邏輯為上圖 去除think中的代碼為 import re…

容器的CPU

1、限制進程的CPU 通過Cgroup來限制進程資源的使用&#xff0c;CPU Cgroup 是 Cgroups 其中的一個 Cgroups 子系統&#xff0c;它是用來限制進程的 CPU 使用的。 cpu.cfs_period_us&#xff0c;它是 CFS 算法的一個調度周期&#xff0c;一般它的值是 100000&#xff0c;以 mic…

【系統分析師-第二篇】

學習目標 通過參加考試&#xff0c;訓練學習能力&#xff0c;而非單純以拿證為目的。 1.在復習過程中&#xff0c;訓練快速閱讀能力、掌握三遍讀書法、運用番茄工作法。 2.從底層邏輯角度理解知識點&#xff0c;避免死記硬背。 3.通過考試驗證學習效果。 學習方法 第二遍快速…

【再探圖論】深入理解圖論經典算法

一、bellman_ford 1. 是什么松弛 在《算法四》中&#xff0c;對松弛的解釋是&#xff1a;relax the edge&#xff0c;看起來比較抽象&#xff0c;不過如果我們從生活中的實例去理解&#xff0c;就簡單多了&#xff1a; 試想一根繩索&#xff0c;當你握著繩索的兩頭使勁用力拉…

基于pycharm的YOLOv11模型訓練方法

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、前期準備1.1 軟件環境配置1.2 訓練集參考 二、訓練步驟2.1 打開文件夾2.2 打開文件2.3 data.yaml最終代碼 三、train.py四、最終結果五、detect.py六、 拓展…

用nodejs連接mongodb數據庫對標題和內容的全文本搜索,mogogdb對文檔的全文本索引的設置以及用node-rs/jieba對標題和內容的分詞

//首先我們要在Nodejs中安裝 我們的分詞庫node-rs/jieba,這個分詞不像jieba安裝時會踩非常多的雷&#xff0c;而且一半的機率都是安裝失敗&#xff0c;node-rs/jieba比jieba庫要快20-30%&#xff1b;安裝分詞庫是為了更好達到搜索的效果 這個庫直接npm install node-rs/jieba即…

水下聲吶探測儀,應急救援中的高效水下定位技術|深圳鼎躍

近年來&#xff0c;隨著水域活動增多及自然災害頻發&#xff0c;水下救援需求日益增長。傳統人工打撈方法在復雜水域中效率低、風險高&#xff0c;尤其在能見度差、水流湍急或深水區域中&#xff0c;救援難度倍增。 在此背景下&#xff0c;水下聲吶探測儀憑借其聲波定位與視頻…

AI 網關代理 LLMs 最佳實踐

作者&#xff1a;付宇軒&#xff08;計緣&#xff09; DeepSeek/QWen 普惠 AI 趨勢 隨著 DeepSeek-R1 的橫空出世&#xff0c;又一次點燃了原本已經有點冷淡的大語言模型市場和話題&#xff0c;并且快速成為了現象級&#xff0c;小到中小學生&#xff0c;大到父母輩都知道了中…

策略模式實際用處,改吧改吧直接用,兩種方式

controller RestController RequestMapping("admin/test") RequiredArgsConstructor(onConstructor __(Autowired)) public class TestController {Autowiredprivate VideoFactory VideoFactory;GetMapping("getList")public R getList(){// 第一種方式T…

chromium魔改——修改 navigator.webdriver 檢測

chromium源碼官網 https://source.chromium.org/chromium/chromium/src 說下修改的chromium源碼思路&#xff1a; 首先在修改源碼過檢測之前&#xff0c;我們要知道它是怎么檢測的&#xff0c;找到他通過哪個JS的API來做的檢測&#xff0c;只有知道了如何檢測&#xff0c;我們…

Muduo網絡庫實現 [九] - EventLoopThread模塊

目錄 設計思路 類的設計 模塊的實現 私有接口 公有接口 設計思路 我們說過一個EventLoop要綁定一個線程&#xff0c;未來該EventLoop所管理的所有的連接的操作都需要在這個EventLoop綁定的線程中進行&#xff0c;所以我們該如何實現將EventLoop和線程綁定呢&#xff1f;…

UE5學習筆記 FPS游戲制作38 繼承標準UI

文章目錄 UE的UIUMG的繼承繼承標準控件創建標準控件繼承標準控件的用處 UE的UI 和Untiy有onGui和UGui類似&#xff0c;UE有slateUI和UMG,slateUI是早期只能用C編寫的UI&#xff0c;UMG是現在使用的&#xff0c;可以拖拽編輯的UI slateUI是UMG的父類 UMG的繼承 我們編寫一個控…