細節/數學/滑動窗口

?題目意思:

判斷字符串是否可以按照題目條件縮短。

思路:

用棧的思想寫,對每一次的大小寫都進行滾動判斷。

tips:

這里面要注意的東西就有一點多了,首先是字符串的遍歷問題auto更方便,其次是對小寫和大寫字母的判斷,可以說字符串大部分的細節這道題目都有涉及。

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve(){int n;cin>>n;string ac;cin>>ac;stack<char>p;for(auto it:ac){if(!p.empty()){//這里是判斷是否為空,但是容易寫成whilechar top=p.top();//找出頂端的字母if(it>top&&islower(top)&& islower(it)&&(it-'a'+1+top-'a'+1==27)){//小寫的情況下,兩者都要是小寫的,而且滿足一定的條件,后大于前且兩者相加為27p.pop();continue;}if(it<top&&isupper(top)&&isupper(it)&&(it-'A'+1+top-'A'+1==27)){//大寫的情況下,兩者都要是大寫的,而且滿足一定的條件,前大于后且兩者相加為27p.pop();continue;}}p.push(it);}cout<<p.size()<<endl;
}
signed main(){int n=1;while(n--){solve();}
}

題目意思:

給定一些數字,判斷這些數字是否能用其他平方數字通過迭代的方式得到。

思路:

平方數字有4,9,16,25....但是我們這里只需要取4,9即可,因為大于9的平方數字我們都可以通過較小的平方數字得到。故有意義的平方數字只有4,9。

拿4舉例子

1,4,7,...3k+1

拿9舉例子

1,9,17,...8k+1

拿25舉例子

1,24,47,...23k+1

之后由于題目中可以反復取相同或者不相同的平方數字進行若干次操作,我們可以對上述數字進行通解寫法,3a+1+23b+8c+...(其他平方數字),但是我們要找到這一串通解表達最小的數字是多少。

麥樂雞定理??

我們可以根據上數定理找到最小可表達的數字,這里我們用3a+8b+1得到14。

故大于14的數字該表達式都可以表達。

我們只需要在14內部進行特判即可。(手動模擬一下)

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve(){int x;cin>>x;if(x==2||x==3||x==5||x==6||x==8||x==11||x==14){cout<<"No"<<endl;}else{cout<<"Yes"<<endl;}
}
signed main(){int n=1;cin>>n;while(n--){solve();}
}

題目意思:

給定一個數組和若干次給每個數字加一的操作下,找到長度為m的字串且奇偶交替的最小次數。

思路:滑動窗口想法,對于每一個長度為m的字串進行判斷找最小,從頭到尾遍歷一遍。

奇偶交替的情況可以是奇偶奇偶奇偶也可以是偶奇偶奇偶奇,說到底是數組下標和數字之間的關系。故我們可以將奇數標記為1,偶數標記為0,進行狀壓轉移。

最后按照兩種情況分別求個前綴和(如果數字的奇偶性和當下交替情況不符合,我們就直接操作加1)

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve() {int n, m;cin >> n >> m;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];  // 輸入數組a}// 定義兩個數組aa和bb,分別表示將a[i]調整為以奇數開頭和偶數開頭的奇偶交替序列所需的操作次數vector<int> aa(n), bb(n);for (int i = 0; i < n; i++) {// aa[i]: 如果a[i]的奇偶性與i的奇偶性不一致,則需要調整(操作次數為1),否則為0aa[i] = (a[i] % 2 != i % 2) ? 1 : 0;// bb[i]: 如果a[i]的奇偶性與i的奇偶性相反(即i是偶數時a[i]是奇數,i是奇數時a[i]是偶數),則需要調整(操作次數為1),否則為0bb[i] = (a[i] % 2 != !(i % 2)) ? 1 : 0;}// 前綴和數組,用于快速計算區間和vector<int> qian(n + 1, 0), hou(n + 1, 0);for (int i = 0; i < n; i++) {qian[i + 1] = qian[i] + aa[i];  // qian[i+1]表示前i個元素中aa的和hou[i + 1] = hou[i] + bb[i];    // hou[i+1]表示前i個元素中bb的和}int answer = 8e18;  // 初始化為一個很大的數,表示無窮大// 滑動窗口,遍歷所有長度為m的子數組for (int i = 0; i + m <= n; i++) {// 計算當前窗口內aa的和(即調整為以奇數開頭的奇偶交替序列的操作次數)int sum = qian[i + m] - qian[i];// 計算當前窗口內bb的和(即調整為以偶數開頭的奇偶交替序列的操作次數)int cnt = hou[i + m] - hou[i];// 更新最小操作次數answer = min({answer, sum, cnt});}cout << answer << endl;
}signed main() {int t = 1;while (t--) {solve();}return 0;
}

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

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

相關文章

WebeServer實現:學到了哪些東西

前言 這里話就是總結一下之前沒講過的一些東西 系統調用 accept與accept4 ??當我們調用accept接收一個新的fd的時候&#xff0c;往往需要在調用fcntl將這個fd變成非阻塞IO,那么有沒有一個系統調用可以一次性做完這兩件事呢&#xff0c;有的有的就是accept4. // accept 函數…

React 虛擬dom

JSX創建出ReactElement對象 最終形成一個JS樹 將React.createElement對象轉為真實DOM的方法使用render函數 為什么要虛擬 dom 狀態難以跟蹤 ## 操作真實dom開銷大 &#xff0c;并且操作會引起頻繁的回流和重繪&#xff0c;并且不涉及批處理 聲明式編程 從虛擬dom向真實dom去…

Spring MVC異常處理機制

Spring MVC提供了多種異常處理機制,以下是核心處理方式及實現方法: 一、局部異常處理(Controller級別) @ExceptionHandler注解 在Controller內部定義異常處理方法,捕獲當前控制器拋出的指定異常。@Controller public class UserController {@GetMapping("/test"…

MySQL 8.x配置MGR高可用+ProxySQL讀寫分離(一):MGR構建MySQL高可用

#作者&#xff1a;stackofumbrella 文章目錄 簡介MGR優點MGR缺點MGR適用場景單主模式和多主模式組復制介紹組復制插件架構圖單主模式多主模式配置主機名解析安裝MGR插件 MGR故障轉移恢復MGR集群 簡介 MGR&#xff08;MySQL Group Replication&#xff09;是MySQL 5.7.17版本誕…

保安員證考試的理論知識部分,重點考查的法律法規具體有哪些?

保安員證考試理論知識部分&#xff0c;重點考查的法律法規主要有以下幾種&#xff1a; 《保安服務管理條例》&#xff1a;作為保安行業的專門法規&#xff0c;是考試核心。重點考查保安服務活動規范&#xff0c;如保安服務的范圍、資質要求等&#xff1b;保安員的權利與義務&am…

【好用但慎用】Windows 系統中將所有 WSL 發行版從 C 盤遷移到 非系統 盤的完整筆記(附 異常處理)

&#x1f680; 將所有 WSL 發行版從 C 盤遷移到 I 盤的完整教程&#xff08;含 Podman / NVIDIA Workbench / Ubuntu 等&#xff09; 【無標題】使用 Chocolatey 安裝 WSL 管理工具 LxRunOffline-CSDN博客 免責聲明 重要提示 在執行 WSL 遷移操作前&#xff0c;請務必仔細閱讀…

Oracle APEX 通過rtf模板下載PDF文件(BIP)

1. 上傳模板文件 共享組件 > 報表布局 2. 編寫SQL文 共享組件 > 報表查詢 報表布局中選擇1中設置完的報表布局&#xff0c;然后編寫SQL文提供數據 3. 添加下載按鈕 在頁中添加一個下載按鈕&#xff0c;添加動態操作&#xff0c;選擇打印報告 4. 下載PDF文件 點擊Pri…

Web Seach 搜索 MCP 啟動!

&#x1f680; 開啟你的 AI 助手搜索能力&#xff01;開源 Web 搜索 MCP 服務器上線&#xff01; 在 ChatGPT、Claude 等 AI 工具成為生產力新核心的今天&#xff0c;我們往往面臨一個尷尬的問題&#xff1a;模型不知道最新的網絡信息。雖然 GPT-4o 和 Claude 支持聯網功能&am…

005微信小程序npm包_全局數據共享和分包

npm包_全局數據共享和分包 1. 使用npm包1.1 Vant Weapp1.2 API Promise化 2. 全局數據共享3. 分包3.1 分包的加載規則3.2 分包的體積限制3.3 使用分包3.3 獨立分包3.4 分包預下載 1. 使用npm包 小程序對npm進行了支持與限制&#xff0c;限制如下&#xff1a; 不支持依賴于 No…

DPO直接偏好函數的學習解讀

DPO, Direct Preference Optimization&#xff0c;采用直接優化策略滿足人類偏好&#xff0c;使得LLM對于給定輸入&#xff0c;生成能用輸出的概率高于生成不能用輸出的概率。 1&#xff09;DPO優化目標 在DPO訓練過程中&#xff0c;模型通過最大化可用回答相對于不可用回答的…

【開源初探】基于 Qwen2.5VL的文檔解析工具:docext

源碼地址&#xff1a; https://github.com/NanoNets/docext 概述 docext 是一個由視覺語言模型&#xff08;vlm&#xff09;提供支持的全面的本地文檔智能工具包。vlm 使用的是基于 Qwen2.5VL-3B 的模型&#xff0c;應該是在此模型基礎上進行的微調。 它提供了三個核心功能&…

Python 正確重載運算符(增量賦值運算符)

增量賦值運算符 Vector 類已經支持增量賦值運算符 和 * 了&#xff0c;如示例 13-15 所示。 示例 13-15 增量賦值不會修改不可變目標&#xff0c;而是新建實例&#xff0c;然后 重新綁定 >>> v1 Vector([1, 2, 3]) >>> v1_alias v1 # ? >>> …

XCUITest + Objective-C 詳細示例

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】

redis分布式鎖 Redisson在電商平臺開發中的實際應用

目錄 概述 Redis分布式鎖的實現方式 1. 基于SETNX命令&#xff08;String類型&#xff09; 2. 使用SET命令的NX和EX參數&#xff08;推薦方式&#xff09; 3. 基于Lua腳本實現復雜邏輯 4. RedLock算法&#xff08;多節點Redis實現&#xff09; Redisson的分布式鎖 Redis…

joomla 使用nginx服務器只能打開首頁,其他頁面404的解決方案

最近一個客戶將Joomla4網站從原先的Apache服務器改為Nginx服務器&#xff0c;整個過程一切順利&#xff0c;但還原網站后發現只能打開首頁&#xff0c;其他頁面都是404。這個問題需要修改nginx的配置文件來解決。 偽靜態 在Apache中使用.htaccess來完成偽靜態路由的轉發&…

湖北理元理律師事務所企業債務紓困路徑:司法重整中的再生之道

中小企業債務危機常呈現“擔保鏈擴散”特征&#xff0c;單一債務可能引發企業崩盤。湖北理元理律師事務所通過預重整制度與企業債務重組技術&#xff0c;探索出“司法保護商業談判”的紓困模式。 一、企業債務風險處置四步法 緊急止血 申請司法保護&#xff1a;通過訴前調解…

利用DeepWiki高效閱讀項目源碼

想獲取更多高質量的Java技術文章&#xff1f;歡迎訪問Java技術小館官網&#xff0c;持續更新優質內容&#xff0c;助力技術成長 技術小館官網 DeepWiki 是一個強大的工具&#xff0c;專為程序員提供開源項目源碼的結構化文檔和 AI 驅動的問答功能&#xff0c;幫助快速理解復雜…

django rest_framework 前端網頁實現Token認證

rest_framework提供了幾種認證方式&#xff1a;Session、Token等。Session是最簡單的&#xff0c;幾乎不用寫任何代碼就可以是實現&#xff0c;Token方式其實也不復雜&#xff0c;網上的教程一大把&#xff0c;但是最后都是用Postman這類工具來實現API調用的&#xff0c;通過這…

面試題-函數類型的重載是啥意思

在 TypeScript 中&#xff0c;函數重載&#xff08;Function Overload&#xff09; 是指為同一個函數提供多個不同的調用簽名&#xff08;參數類型和返回值類型的組合&#xff09;&#xff0c;但函數體只有一個實現。這樣可以讓函數在不同的輸入下表現出不同的行為&#xff0c;…

磐基PaaS平臺MongoDB組件SSPL許可證風險與合規性分析(上)

#作者&#xff1a;任少近 文章目錄 1.背景與問題1.1.背景1.2.問題 3.SSPL條款解讀分析3.1.條款0&#xff1a;定義條款3.2.條款一&#xff1a;源代碼條款3.3.條款二&#xff1a;基本授權條款3.4.條款三&#xff1a;反規避保護條款3.5.條款四&#xff1a;逐字傳播條款3.6.條款五…