Codeforces Round 855 (Div. 3)

A. Is It a Cat?

去重, 把所有字符看成大寫字符, 然后去重, 觀察最后結果是不是“MEOW”

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::string ans, t;std::cin >> ans;for (int i = 0; i < n; i++) {if(ans[i] >= 'a') ans[i] = ans[i] - 'a' + 'A';if(t.size() == 0) {t += ans[i];}else {if(ans[i] != t.back()) t += ans[i]; }}if(t == "MEOW") {std::cout << "YES\n";}else{std::cout << "NO\n";}
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

B. Count the Number of Pairs

統計每一個字符, 計算可以貢獻多少。計算t(最多可以操作幾次)
取min(k, t) 即可

#include <bits/stdc++.h>
#define int long longvoid solve() {int n, k;std::cin >> n >> k;std::string s;std::cin >> s;std::map<char, int> mp;for (auto x : s) mp[x]++;int ans = 0, t = 0;for (char i = 'A'; i <= 'Z'; i++) {char ch = i - 'A' + 'a';ans += std::min(mp[i], mp[ch]);int x = abs(mp[i] - mp[ch]);t += x / 2;}std::cout << ans + std::min(t, k) << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

C2. Powering the Hero (hard version)

簡單的優先隊列

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::priority_queue<int, std::vector<int>, std::less<int>> pq;int ans = 0;for (int i = 0; i < n; i++) {int x;std::cin >> x;if(x == 0) {if(pq.size()) {ans += pq.top();pq.pop();}}else pq.push(x);}std::cout << ans << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

D. Remove Two Letters

通過觀察可以發現, 如果s[i]s[i + 1] == s[i + 1][i + 2] || s[i]s[i + 1] == s[i + 2]s[i + 1] 時, 這兩種操作的結果時相同的, 遍歷模擬即可

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::string s;std::cin >> s;int ans = 0;std::string t = "";for (int i = 0; i < n - 1; i++) {std::string x = t;reverse(x.begin(), x.end());if(s.substr(i, 2) != t && s.substr(i, 2) != x) {ans++;t = s.substr(i, 2);}}std::cout << ans << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

E2. Unforgivable Curse (hard version)

通過理解題意, 發現可以找出所有可以相互交換的下標,歸為一組,可以通過并查集。然后統計每一組s 和 t 的這些下標組成的字符種類和個數是否相同, 如果不同直接輸出"NO", 具體實現見代碼

#include <bits/stdc++.h>
#define int long long
int p[200010];
int find(int x) {if(p[x] != x) p[x] = find(p[x]);return p[x];
}void solve() {int n, k;std::cin >> n >> k;std::string s, t;std::cin >> s >> t;for (int i = 0; i < n; i++) p[i] = i;for (int i = 0; i < n; i++) {if(i + k >= n) break;p[find(i)] = find(i + k);if(i + k + 1 < n) p[find(i)] = find(i + k + 1); }std::map<int, std::vector<int>> mp;for (int i = 0; i < n; i++) {mp[find(i)].push_back(i);}// std::cout << mp.size() << '\n';for (auto& [k, arr] : mp) {std::vector<int> cnt(26);for (auto& x : arr) {cnt[s[x] - 'a']++;cnt[t[x] - 'a']--;}for (int i = 0; i < 26; i++) {if(cnt[i]) {std::cout << "NO\n";return;}}}std::cout << "YES\n";
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

F. Dasha and Nightmares

類似于前綴和, 狀態壓縮一下。具體看代碼

很容易超時,所以不能使用map,

#include <bits/stdc++.h>
#define int long longstruct custom_hash {static uint64_t splitmix64(uint64_t x) {x += 0x9e3779b97f4a7c15;x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;x = (x ^ (x >> 27)) * 0x94d049bb133111eb;return x ^ (x >> 31);}size_t operator()(uint64_t x) const {static const uint64_t FIXED_RANDOM = std::chrono::steady_clock::now().time_since_epoch().count();return splitmix64(x + FIXED_RANDOM);}
};void solve() {std::vector<int> target(26);for (int i = 0; i < 26; i++) {target[i] = ((1 << 26) - 1) ^ (1 << i);}int n;std::cin >> n;int ans = 0;std::unordered_map<int, int, custom_hash> mp[26];for (int i = 0; i < n; i++) {int mask = 0;std::string s;std::cin >> s;std::vector<int> cnt(26);for (auto x : s) {cnt[x - 'a']++;}for (int i = 0; i < 26; i++) {if(cnt[i] & 1) {mask |= (1 << i);}}for (int i = 0; i < 26; i++) {if(cnt[i] == 0 && mp[i].count(target[i] ^ mask)) {ans += mp[i][target[i] ^ mask];}}for (int i = 0; i < 26; i++) {if (cnt[i] == 0) {mp[i][mask]++;}}}std::cout << ans << '\n';
}signed main() {int t = 1;// std::cin >> t;while(t--) solve();return 0;
}

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

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

相關文章

Scrapy選擇器深度指南:CSS與XPath實戰技巧

引言&#xff1a;選擇器在爬蟲中的核心地位在現代爬蟲開發中&#xff0c;??選擇器??是數據提取的靈魂工具。根據2023年網絡爬蟲開發者調查數據顯示&#xff1a;??92%?? 的數據提取錯誤源于選擇器編寫不當熟練使用選擇器的開發效率相比新手提升 ??300%??同時掌握CSS…

Windos服務器升級MySQL版本

Windos服務器升級MySQL版本 1.備份數據庫 windows下必須以管理員身份運行命令行工具進行備份&#xff0c;如果沒有配置MySQL的環境變量&#xff0c;需要進入MySQL Server 的bin目錄輸入指令&#xff0c; mysqldump -u root -p --all-databases > backup.sql再輸入數據庫密碼…

告別頻繁登錄!Nuxt3 + TypeScript + Vue3實戰:雙Token無感刷新方案全解析

前言 在現代 Web 應用中&#xff0c;身份認證是保障系統安全的重要環節。傳統的單 Token 認證方式存在諸多不足&#xff0c;如 Token 過期后需要用戶重新登錄&#xff0c;影響用戶體驗。本文將詳細介紹如何在 Nuxt3 TypeScript Vue3 項目中實現無感刷新 Token 機制&#xff…

Linux——Redis

目錄 一、Redis概念 1.1 Redis定義 1.2 Redis的特點 1.3 Redis的用途 1.4 Redis與其他數據庫的對比 二、Redis數據庫 三、Redis五個基本類型 3.1 字符串 3.2 列表(list) ——可以有相同的值 3.3 集合(set) ——值不能重復 3.4 哈希(hash) ——類似于Map集合 3.5 有序…

【AI大模型】部署優化量化:INT8壓縮模型

INT8&#xff08;8位整數&#xff09;量化是AI大模型部署中最激進的壓縮技術&#xff0c;通過將模型權重和激活值從FP32降至INT8&#xff08;-128&#xff5e;127整數&#xff09;&#xff0c;實現4倍內存壓縮2-4倍推理加速&#xff0c;是邊緣計算和高并發服務的核心優化手段。…

LFU 緩存

題目鏈接 LFU 緩存 題目描述 注意點 1 < capacity < 10^40 < key < 10^50 < value < 10^9對緩存中的鍵執行 get 或 put 操作&#xff0c;使用計數器的值將會遞增當緩存達到其容量 capacity 時&#xff0c;則應該在插入新項之前&#xff0c;移除最不經常使…

檢查輸入有效性(指針是否為NULL)和檢查字符串長度是否為0

檢查輸入有效性&#xff08;指針是否為NULL&#xff09;和檢查字符串長度是否為0 這兩個檢查針對的是完全不同的邊界情況&#xff0c;都是必要的防御性編程措施&#xff1a; 1. 空指針檢查 if(!src) 目的&#xff1a;防止解引用空指針場景&#xff1a;當調用者傳入 NULL 時風險…

Apache POI 的 HSSFWorkbook、SXSSFWorkbook和XSSFWorkbook三者的區別

HSSFWorkbook 專用于處理Excel 97-2003&#xff08;.xls&#xff09;格式的二進制文件。基于純Java實現&#xff0c;所有數據存儲在內存中&#xff0c;適合小規模數據&#xff08;通常不超過萬行&#xff09;。內存占用較高&#xff0c;但功能完整&#xff0c;支持所有舊版Exce…

冷凍電鏡重構的GPU加速破局:從Relion到CryoSPARC的并行重構算法

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;H卡級別算力&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生專屬優惠。 一、冷凍電鏡重構的算力困局 隨著單粒子冷凍電鏡&#xff08;cryo-EM&#xff09;分辨率突破…

算法學習筆記:16.哈希算法 ——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

在計算機科學中&#xff0c;哈希算法&#xff08;Hash Algorithm&#xff09;是一種將任意長度的輸入數據映射到固定長度輸出的技術&#xff0c;其輸出稱為哈希值&#xff08;Hash Value&#xff09;或散列值。哈希算法憑借高效的查找、插入和刪除性能&#xff0c;在數據存儲、…

16018.UE4+Airsim仿真環境搭建超級詳細

文章目錄 1 源碼下載2 下載安裝軟件2.1 安裝 UE4 軟件2.2 安裝visual studio 20223 編譯airsim源碼4 進入AirSim工程,打開工程5 UE4 工程創建5.1 下載免費場景 CityPark,并創建工程5.2 工程編譯5.2.1 將airsim 插件拷貝到 UE4工程路徑中5.2.2 修改工程配置文件5.2.3 創建c++類…

Python 實戰:構建 Git 自動化助手

在多項目協作、企業級工程管理或開源社區維護中&#xff0c;經常面臨需要同時管理數十甚至上百個 Git 倉庫的場景&#xff1a;多倉庫需要統一 pull 拉取更新定期向多個項目批量 commit 和 push自動備份 Git 項目批量拉取私有倉庫并管理密鑰為解決這類高頻、重復、機械性工作&am…

【PTA數據結構 | C語言版】出棧序列的合法性

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 給定一個最大容量為 m 的堆棧&#xff0c;將 n 個數字按 1, 2, 3, …, n 的順序入棧&#xff0c;允許按任何順序出棧&#xff0c;則哪些數字序列是不可能得到的&#xff1f;例如給定 m5、n7&#xf…

【LangGraph】create_react_agent 方法詳細解釋

create_react_agent 方法詳細解釋 create_react_agent 方法是一個在 LangGraph 中創建 React 代理的核心函數,接下來我們將一起探討這個函數的作用、參數、返回值以及工作原理。 @_convert_modifier_to_prompt def create_react_agent(model: Union[str, LanguageModelLike]…

【時間之外】塵封的智能套件復活記

目錄 塵封的獎品 初次觸網的挫敗 客服只會誘導消費 意外發現的生機 真相與反思 塵封的獎品 五年前那個蟬鳴陣陣的夏日&#xff0c;我抱著創新比賽特等獎的獎品禮盒走下領獎臺時&#xff0c;絕對想不到這份榮譽會衍生出如此曲折的故事。禮盒里靜靜躺著的智能家居套裝&…

從零開始學前端html篇1

1基本結構<!DOCTYPE html> <html><head><title>this is a good website</title></head><body><h1>hello!</h1></body> </html>運行效果如下&#xff08;編輯器提示waings:"缺少所需的 lang 特性"…

Redis Cluster 手動部署(小白的“升級打怪”成長之路)

目錄 一、環境規劃 二、基礎環境 1、創建配置目錄 2、生成配置文件 3、修改監聽端口 4、修改數據目錄 5、修改日志目錄 6、修改PID文件目錄 7、修改保護模式 8、修改進程運行模式 9、修改監聽地址 10、生成集群配置 11、啟動服務 三、構建集群 1、將其他節點加入…

【Java入門到精通】(三)Java基礎語法(下)

一、面向對象&#xff08;類和對象&#xff09;1.1 萬事萬物皆對象類&#xff1a;對對象向上抽取出像的部分、公共的部分以此形成類&#xff0c;類就相當于一個模板。對象&#xff1a;模板下具體的產物可以理解為具體對象&#xff0c;對象就是一個一個具體的實例&#xff0c;就…

Java文件傳輸要點

Java文件傳輸要點 一、前端 <form action"/upload" method"post" enctype"multipart/form-data"> <!--<form action"/upload" method"post">-->姓名: <input type"text" name"username…

Spring Boot 中使用 Lombok 進行依賴注入的示例

Spring Boot 中使用 Lombok 進行依賴注入的示例 下面我將展示 Spring Boot 中使用 Lombok 進行依賴注入的不同方式&#xff0c;包括構造器注入、屬性注入和 setter 方法注入&#xff0c;以及相應的測試用例。 1. 構造器注入&#xff08;推薦方式&#xff09; import lombok.Req…